Tring di fare questoduplicare tutti i righe di una tabella e prevenire le chiavi duplicate
- Ottenere tutte le righe in un blog di nome tabella.
- li copia in un database temporaneo
- Modificare il campo lingua di questo record della tabella temporanei
- inserire nella tabella blog
E sto cercando in questo modo:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
Ma di solito ottengo l'errore della chiave duplicato ...
Come posso impedirlo?
operativa -Editazione-
ho provato:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
ALTER TABLE tmptable DROP id;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
Ma poi il Column count doesn't match value count at row 1
operativa -Editazione-
Credo che questo sarà il lavoro (e lo ha fatto, perché io so come esistono molti documenti)
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + 1000;
INSERT INTO blogs SELECT * FROM tmptable;
Ma come posso farlo correttamente? (Basta impostare il valore successivo autoincrement avaliable per la chiave primaria (id) (senza PHP/simili))
operativa -Editazione-
forse qualcosa di simile ???
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + (SELECT id FROM blogs ORDER BY id DESC LIMIT 1);
INSERT INTO blogs SELECT * FROM tmptable;
l'id della tabella dei blog è un'identità? – TeKapa
è la sua chiave primaria, unica e autoincrementata. sì! –
Perché non basta modificare la tua istruzione INSERT per utilizzare ON DUPLICATE KEY UPDATE? –