2009-08-16 12 views
2

J'ai une liste d'éléments dans une certaine table et je veux avoir une autre table avec un ID de la première table et d'autres valeurs constantes dans les autres colonnes.SQLITE - insérer la question

J'ai la requête suivante:

INSERT INTO table02(item_id, status, card_status) VALUES((SELECT item_id FROM table01), -1, 10); 

Mais il ne fonctionne que pour la première ligne.

Comment puis-je le faire fonctionner pour toutes les lignes? Je dois copier tous les ID de table01 et leur assigner les valeurs -1 et 10 dans les autres colonnes.

Merci.

Répondre

6
INSERT INTO table02 (item_id, status, card_status) SELECT item_id, -1, 10 FROM table01; 
3

En ANSI SQL, il serait:

INSERT INTO table02(item_id, status, card_status) 
SELECT item_id, status, card_status FROM table01; 

où le statut et card_status sont vos valeurs codées en dur.

... donc je suppose que cela fonctionnerait ici aussi.

3

Je créerais table02 avec les valeurs par défaut puis insérez seulement le item_id de table01.

CREATE TABLE table02 (item_id INTEGER PRIMARY KEY, 
         status INTEGER DEFAULT -1, 
         card_status INTEGER DEFAULT 10); 
INSERT INTO table02 (item_id) SELECT item_id FROM table01; 
Questions connexes