Armel_Djient Ответов: 4

Mysql: вставить запись, если она еще не существует


Привет всем, у меня есть visual studio 2012 winform c#

Используя Mysql, я хотел бы вставить запись, если она еще не существует в таблице

Что я уже пробовал:

Вставить в refreshcity (Id, Society) значения ('900000','toto')
Где не существует (выберите Id, Society From refreshcity WHERE Id ='900000')

4 Ответов

Рейтинг:
29

koolprasadd

Есть небольшое изменение в запросе, просто попробуйте сначала выбрать запись, которую вы хотите вставить в базу данных, если она не существует, то вы можете вставить в нее.
смотрите ниже фрагмент кода

INSERT INTO table_listnames (name, address, tele)
SELECT * FROM (SELECT 'name1', 'add', '022') AS tmp
WHERE NOT EXISTS (
    SELECT name FROM table_listnames WHERE name = 'name1'
) LIMIT 1;


Надеюсь, это поможет


koolprasadd

смотрите, у меня есть таблица с именем table_listnames, и я хочу вставить имя, адрес и номер телефона в таблицу, но перед вставкой я хочу проверить, существует ли уже та же запись с тем же именем или нет. поэтому сначала я выберу имя из таблицы, где имя-это то же самое имя, которое я хочу вставить. если он не существует, то он вставит новую запись.
Это для MySQL а не для SQL

Armel_Djient

я понял, как работает эта команда.
Вставить в table_listnames (имя, адрес, теле)
представляет столбцы, в которые будут вставлены данные
Выберите * FROM (выберите 'name1', 'add', '022') в качестве tmp
приводит значения, которые должны быть вставлены в столбцы(имя, адрес, теле), упомянутые выше
ГДЕ НЕ СУЩЕСТВУЕТ
чтобы проверить, существует ли запись уже или нет

Большое вам спасибо за ваш ответ

koolprasadd

добро пожаловать

klmediadev

потрясающе, колпрасадд! спасибо вам за этот полезный снипп :-) доброго здоровья!

koolprasadd

рад, что это помогает...

Рейтинг:
1

h@ndy

INSERT INTO `refreshcity` (`Id`, `Society`) 
SELECT '900000','toto'
WHERE NOT EXISTS (Select `Id` From `refreshcity` WHERE `Id` ='900000') LIMIT 1;

Эта работа для меня.


Рейтинг:
0

Shaa Dea

если у вас есть "уникальный" столбец, вы можете просто сделать "insert ignore into... "; он автоматически проверит уникальный столбец на наличие дубликатов каждой строки, которая будет вставлена, и просто проигнорирует запись, если она уже существует.


CHill60

"игнорировать в ..." - как обсуждалось по ссылке, приведенной в решении 1 год назад.