C'est la première fois que j'utilise SQL et que j'essaie d'insérer des données uniquement si l'entrée n'est pas dans la base de données. Mon SQL ressemble à ceci :
insert_query = ("IF NOT EXISTS ( SELECT 1 FROM `follows` WHERE `id_user` = '"+user_id+"' AND `id_folgt` = '"+folgt_id+"') BEGIN INSERT INTO `follows`(`id_user`, `id_folgt`) VALUES ('"+user_id+"','"+folgt_id+"')END;")
Malheureusement, j'ai rencontré une erreur de syntaxe
Si vous souhaitez insérer une ligne uniquement si elle n'existe pas dans le tableau, vous avez plusieurs options :
Créez un index unique via une expression pour détecter s'il existe. Si la valeur de cette expression existe déjà dans la table, le serveur empêchera l'insertion.
Utilisez INSERT .. ON DUPLICATE KEY UPDATE et de fausses opérations UPDATE (par exemple,
id = id
,其中id
est la clé primaire).Utilisez INSERT .. SELECT selon WHERE NOT EXISTS. L'insertion n'est effectuée que si la clause WHERE renvoie TRUE.
Il y a plus d'options...