À titre d'illustration, supposons que j'ai une base de données Films (titre, réalisateur, coût, bénéfices).
Maintenant, j'aimerais insérer une nouvelle ligne dans la table Movies en fonction d'un directeur trouvé dans une autre table, puis de valeurs codées en dur.
INSERT INTO Movies
SELECT name
FROM Directors
WHERE name = 'Lucas';
C’est ainsi que je comprends les insertions de select qui fonctionnent mais que se passe-t-il si je veux utiliser les options select ainsi que les valeurs codées en dur Donc, quelque chose théoriquement comme ça:
INSERT INTO Movies
VALUES(Star Wars,(SELECT name
FROM Directors
WHERE name='Lucas'), 50000, 1000000);
Est-ce possible?
INSERT INTO Movies (Title, Director, Cost, Profits)
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors WHERE name = 'Lucas'
Étant donné que vous pouvez spécifier des valeurs codées en dur dans l'instruction select
, il est probablement plus propre d'utiliser:
insert into movies (title, director, cost, profits)
select 'Star Wars', name, 50000, 1000000 from directors where name = 'Lucas';
Oui, c'est possible Utilisateur INSERT .. syntaxe SELECT. Voir référence pour plus de détails. Les valeurs codées en dur doivent être dans votre requête SELECT plutôt que dans les valeurs. Par exemple.
INSERT INTO Movies
SELECT 'Star Wars', name, 50000, 1000000
FROM Directors
WHERE name = 'Lucas';
vous avez une base de données sous forme de films (titre, réalisateur, coût, bénéfices). Si vous voulez entrer les valeurs dans les tableaux respectifs, sélectionnez d’abord le tableau, puis insérez-en des valeurs.