2011-12-29 8 views
2

je veux définir requête si la ligne n'existerequête MySQL ne fonctionne pas

IF NOT EXISTS (SELECT id FROM table WHERE id=1) 
INSERT INTO table (id, name) VALUES (1,'abx'); 

et que si id! = 1 alors les valeurs sont insérées et vérifiez si la ligne existe déjà

si une solution?

merci à l'avance ...

enfin je soved il

INSERT INTO table (id, nom) VALUES (1, 'ABX) ON id DUPLICATE KEY UPDATE = 1;

merci pour votre suport

Répondre

1

Vous avez des problèmes avec des types de données - en SELECT id est comparé au nombre (id = 1 - sans apostrophes) et INSERT id est écrit comme une chaîne (apostrophes: '1').

+0

i essayer .. avec le numéro seulement, mais pas travaillé –

1
INSERT IGNORE INTO `table_name` (`id`, `name`) 
VALUES (1, 'abx'); 
1

MySQL n'a pas "SI N'EXISTE PAS".

Pour plus d'informations: How to 'insert if not exists' in MySQL?

Vous verrez qu'il ya des solutions de contournement, mais en utilisant la syntaxe MsSQL ne fonctionnera pas.

L'utilisation IGNORE devrait aider: INSERT IGNORE INTO

Sinon, laissez simplement échouer.

0

Je pense que:

INSERT IGNORE INTO table (id, name) VALUES (1,'abx'); 

ce que cela vous voulez. Il échouera silencieusement si le INSERT a échoué.

Notez que la clé n'a pas besoin de guillemets, il est un entier, pas une chaîne