Esquema Em Mysql Para Numero De Linhas
#1
Posted 31/10/2003, 11:52
mais to precisando da segunte ajuda,
tenho uma tabela, quero manter sempre os ultimos 50 registros nela, entao por ex, se eu adiciono um registro novo, precido deletar o mais antigo ou os mais antigos para que fique sempre 50, alguem tem alguma ideia pelomenos ai,
valews,
Community4Dev.org
Join us now and share de knowledge.
Comunidade para Desenvolvedores Livres...
Crie sem restrições e jogue fora as malditas licenças proprietárias...
em breve de volta....
#2
Posted 31/10/2003, 13:36
se vc precisa apenas mostrar os 50 mais novos, vc pode fazer seu select assim
select campo1, campo2, ... from tabela where campo=oquevcquer order by seucampodecontroleprasaberquaissaoosmaisvelhos DESC limit 50 ;
bom, ma se o que vc quer é apagar...
delete from tabela order by seucampodecontroleprasaberquaissaoosmaisvelhos DESC limit 51,10000000; //onde 100000000 é quantos registros serão apagados
bom, se vc vai fazer esse delete sempre depois de incluir 1 registro, entao sabemos que assim que vc incluir terão 51 registros na tabela e vc só precisa apagar o de numero 51:
delete from tabela order by seucampodecontroleprasaberquaissaoosmaisvelhos DESC limit 51,1;
mas lembre-se... deletar é um treco perigoso, a não ser que vc tenha certeza...
Edição feita por: Stormbringer, 31/10/2003, 13:41.
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
#3
Posted 31/10/2003, 15:10
é cara, a ideia é essa, mais ai ta errada a sintaxe, no caso,delete from tabela order by seucampodecontroleprasaberquaissaoosmaisvelhos DESC limit 51,10000000; //onde 100000000 é quantos registros serão apagados
DELETE FROM `pub_src_cnt_log_ref` ORDER BY `id` ASC LIMIT 51, 100 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '100' at line 1
tava lendo o manual do mysql, e ele fala que precisa de uma condição pra deletar, no caso eu preciso especificar o where,
mas lembre-se... deletar é um treco perigoso, a não ser que vc tenha certeza...
to ligado, mais ai é tranquilo, isso é uma tabela de log, entao entra mais de 100 registros por hora ai, e nao precisa disso, somente mostrar os ultimos 50, mais ai pra nao ocupar espaco, é melhor deletar
to dando uma estudada aqui, mais ta complicado ainda, valew por enquanto, =]
Edição feita por: yzarc neet, 31/10/2003, 15:38.
Community4Dev.org
Join us now and share de knowledge.
Comunidade para Desenvolvedores Livres...
Crie sem restrições e jogue fora as malditas licenças proprietárias...
em breve de volta....
#4
Posted 31/10/2003, 16:52
o delete nao necessita necessariamente(eta redundancia) do where.
sei que pode nao ter nada relacionado, mas tenta tirar o estaço entre 51,100;
ah cara, coloca 50,1; pra testar
pode ser que o registro 51 nao existindo, ele retorne o erro.. talvez retorne o erro se vc colocar um "range" maior que o numero de registros existentes, mas pode ser que eu esteja viajando tb, hehehe
ah, e a versao do mysql que uso é 4.0.15
abraços
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)