shoujo
(usa Slackware)
Enviado em 26/09/2013 - 23:23h
A resolucao do problema:
Primeiro usei o seguinte:
vamos supor que tem 10 alunos cadastrados e vou inserir um no meio na 4 posicao:
1 - "UPDATE TABLE turmamateria set id = id + 1 where id>=4 ORDER BY id DESC" // aumentei 1 no id de cada aluno de 4 e acima
2 - "INSERT INTO turmamateria (id, nome, .... outros campos) VALUES(4, nome, ... outros campos)"
// acrescentei um novo na posicao 4
3 - "CREATE TABLE turmamateriabak SELECT * FROM turmamateria"
// fiz um clone da tabela para reordenar os alunos na ordem certa obs: nao adianta colocar ORDER BY id ASC porque ele grava na ordem que esta na outra tabela
4 - "TRUNCATE TABLE turmamateriabak"
// limpei a tabela bak
5 - "INSERT INTO turmamateriabak (id, nome, ... outros campos) SELECT (id, nome, outroscampos) FROM turmamateria ORDER BY id ASC"
// ate aqui tudo bem, porem nesse momento tem um registro zero inserido
6 - "DELETE FROM turmamateriabak WHERE id=0"
// porem a tabela nao esta autoincrement pois isso nao e definido quando cria ela usando o select
7 - "ALTER TABLE `turmamateriabak` ADD INDEX ( `id` )"
8 - "ALTER TABLE `turmamateriabak` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT"
e por ultimo
9 - "DROP TABLE turmamateria"
10 - "RENAME TABLE turmamateriabak TO turmamateria"
bom foi isso que eu fiz, gastou muita coisa 10 passos