Помогите пожалуйста составить запрос
если имя (name) в табице (tab) не существует, то добавить
делаю такой запрос
SQL |
IF EXISTS (SELECT * FROM `tab` WHERE name = "123") END ELSE BEGIN INSERT INTO `tab` (name) VALUES ("123") END |
SQL |
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS ... INSERT' at line 1 |
Цитата |
INSERT ... ON DUPLICATE KEY UPDATE .... |
Цитата (Michael @ 15.09.2009 - 10:08) |
о смыслу похоже на REPLACE |
Цитата (http://dev.mysql.com/doc/refman/5.0/en/replace.html) |
REPLACE is a MySQL extension to the SQL standard. It either inserts, or deletes and inserts. For another MySQL extension to standard SQL — that either inserts or updates — see Section 12.2.5.3, “INSERT ... ON DUPLICATE KEY UPDATE Syntax”. |
Цитата |
тут не нужны никакие IF-ы.. Просто делаешь поле name уникальным ключем, тогда просто делаешь INSERT и если запись не существовала то вставится, а если существовала, то не вставится |
Цитата |
z3rg, а ты что хранимую процедуру пишешь, что такой синтаксис? |
Цитата (z3rg @ 15.09.2009 - 11:36) |
kirik вроде ошибку будет выдавать если поставить первичный ключ |