2 votes

Insérer dans une table existante ?

Je sais qu'il y a probablement un moyen simple de le faire, mais je n'arrive pas à me souvenir comment.

En gros, j'ai une table avec 2 champs, ID1 et ID2. Je veux trouver tous les champs avec un id2 = 1, et insérer un autre enregistrement dans la table avec cet id1 et un id2 différent.

La requête pour sélectionner tous les champs pour lesquels je veux un nouvel enregistrement est donc la suivante :

select id1 from mytable where id2 = 1

Et ensuite pour chacun d'entre eux, je veux insérer :

insert into mytable(id1, id2) values([this id1], 6)

3voto

Cory Points 37551

Il vous suffit de combiner les deux requêtes que vous avez déjà rédigées d'une manière légèrement différente :

INSERT INTO mytable (id1, id2) 
SELECT id1, 6 FROM mytable WHERE id2 = 1

1voto

Bassam Mehanni Points 9118

Cela conviendrait-il à votre objectif ?

INSERT INTO mytable(id1, id2)
SELECT id, 6
FROM mytable
WHERE id2 = 1

0voto

froadie Points 15184

Ok, je pense que je l'ai. J'avais juste la mauvaise syntaxe. (Je voudrais supprimer la question, mais je ne peux pas)

insert into mytable (id1, id2)
select id1, 6 from mytable where id2= 1

(J'avais du mal avec une syntaxe comme celle-ci :

insert into mytable (id1, id2) 
values((SELECT id1 FROM mytable WHERE id2 = 1), 6)

et je n'ai pas réussi à trouver comment le réarranger).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X