mysql: select, insert, delete et update dans une requête
j'ai besoin dans une requête select, insert, delete et update.
(J'ai besoin de copier des données depuis un ancien tableau à nouveau, puis supprimer les anciens, et de mettre à jour l'autre).
Insérer et sélectionnez en fonction de copie, j'ai pu, mais maintenant j'ai un problème)
J'ai cette requête:
INSERT INTO news_n (id, data)
SELECT (id, data)
FROM news
WHERE id > 21
Grâce
Quelle est l'erreur? Vous ne pouvez pas utiliser la même table d'effectuer de multiples opérations, c'est à dire
SELECT
avec UPDATE
ou DELETE
.OriginalL'auteur user319854 | 2010-11-03
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas tout faire en un requête, mais vous pouvez le faire dans un transaction si vous utilisez un transactionnelles moteur de store (comme InnoDB). Cela pourrait être ce que vous voulez, mais c'est difficile à dire en utilisant uniquement les informations que vous avez fournies dans votre question.
OriginalL'auteur Ike Walker
MySQL
ne prend pas en chargeMERGE
, de sorte que vous aurez à faire deux requêtes:à condition d'avoir
PRIMARY KEY (id)
dans les deux tables.OriginalL'auteur Quassnoi
Dans une même requête, je ne pense pas que c'est possible.
Vous pouvez essayer d'écrire une Procédure Stockée et à l'aide de Déclencheurs vous pouvez obtenir que
OriginalL'auteur zod
Vous ne pouvez pas combiner Sélectionner/mettre à Jour/etc dans une seule requête. Vous devez écrire des requêtes distinctes pour chaque opération que vous avez l'intention de compléter.
OriginalL'auteur pinkfloydx33