Autor | Zpráva | ||
---|---|---|---|
Petr-K Profil * |
#1 · Zasláno: 22. 9. 2011, 18:46:55
Zdravím,
mám tabulku a pokoušel jsem se do ní vložit nový záznam s navýšením hodnoty (id_rank) o jedna, ale nedařilo se mi. Můžete mi poradit, kde jsou chyby. MySQL mám 5.1. Jen poznámka na závěr, finalní tabulka je s auto_increment, takže jen čistě zvědavost, kde je problém. Děkuji. Pokus 1 #1093 - You can't specify target table 'def_rank_of_person' for update in FROM clause INSERT INTO `def_rank_of_person` ( `id_rank`, `id_language`, `label` ) VALUES ( ( SELECT MAX(`id_rank`)+1 FROM `def_rank_of_person` LIMIT 1 ), 'cz', 'pokus' ) Pokus 2 #1111 - Invalid use of group function INSERT INTO `def_rank_of_person` ( `id_rank`, `id_language`, `label` ) VALUES ( (MAX(`id_rank`)+1), 'cz', 'pokus' ) Pokus 3 #1136 - Column count doesn't match value count at row 1 INSERT INTO `def_rank_of_person` ( `id_rank`, `id_language`, `label` ) VALUES ( ( SELECT MAX(`id_rank`)+1, 'cz', 'pokus' FROM `def_rank_of_person` ) ) |
||
Tori Profil |
#2 · Zasláno: 22. 9. 2011, 19:20:25
Petr-K:
„Zvyšování hodnoty bez Auto_increment“ vs. „finalní tabulka je s auto_increment“ Tak jak to teda je - máte na sloupci id_rank auto increment a zkoušíte, jak se to dá udělat bez něj, anebo tam není a chcete ho nějak nasimulovat? Asi jsem nepochopila váš problém. Ad pokus 1: viz manuál k INSERT ... SELECT pokus 2: chybí zdrojová tabulka pokus 3: přebývá VALUES, bez něj to (myslím si) vyhodí stejnou chybu jako u prvního pokusu. |
||
joe Profil |
#3 · Zasláno: 23. 9. 2011, 03:20:06 · Upravil/a: joe
Takhle by to šlo
INSERT INTO `def_rank_of_person` ( `id_rank`, `id_language`, `label` ) VALUES ( (SELECT MAX(`drp.id_rank`)+1 FROM `def_rank_of_person`AS drp), 'cz', 'pokus' ) |
||
Časová prodleva: 13 let
|
0