Maison > Questions et réponses > le corps du texte
J'essaie de comprendre comment copier un enregistrement de ligne de la même table (uniquement si la ligne n'existe pas), mais les solutions que j'ai trouvées ne sont que partielles. Par exemple, « Copier l'enregistrement » ou « Insérer s'il n'est pas présent ». J'ai donc essayé de fusionner ces réponses pour faire ma réponse, mais... je suppose que je viens de créer un code dégoûtant.
Voyons ça
INSERT INTO LCL SELECT * FROM LCL WHERE (UID = 0 AND NAME = 'S_TYPE') WHERE NOT EXISTS (SELECT * FROM LCL WHERE UID = 11 AND NAME = 'S_TYPE' LIMIT 1);
Il existe un enregistrement au format par défaut, UID = 0
。如果没有NAME = S_TYPE
的记录,则复制NAME = S_TYPE AND UID = 0
的记录,并将UID
changé en 11. L'enregistrement doit copier les données de toutes les colonnes. J'ai donc essayé d'utiliser SELECT * mais je ne sais pas si c'est correct.
Je suis sûr d'avoir foiré les deux WHERE
...
P粉8608979432024-02-22 11:55:57
Si vous avez déjà des supports sur WHERE
那么后续应该是 AND
。我不认为你真的需要第一个 WHERE
:
INSERT INTO LCL SELECT * FROM LCL WHERE UID = 0 AND NAME = 'S_TYPE' AND NOT EXISTS (SELECT * FROM LCL WHERE UID = 11 AND NAME = 'S_TYPE' LIMIT 1);