2015-05-29 3 views
0

Я хочу вставить некоторые значения в базу данных postgres с помощью скрипта python, , но когда я попробую его с моим кодом ниже, я получаю синтаксический анализ при первом IF.SQL Вставить, если не существует с psycopg2

sql_string = "BEGIN IF (NOT EXISTS(SELECT * FROM table WHERE nm=name)) 
      BEGIN INSERT INTO table(nm, nb) 
      VALUES (%s, %s) END END" 
cur.execute(sql_string, (name, number)) 

Было бы здорово, если бы у кого-то была идея. thanks :)

+0

В SQL не существует 'IF (...)'. Вместо этого поставьте условие в предложение where. : 'INSERT INTO_table (column_list) value_list WHERE NOT EXISTS (выберите 1 из same_table WHERE same_condition)' – joop

+0

http://stackoverflow.com/questions/1109061/insert-on-duplicate-update-in-postgresql –

+0

Эта ссылка относится к другой механизм базы данных. –

ответ

1

Этот подход является агностиком базы данных.

insert into yourtable 
(field1, field2, etc) 
select distinct value1, value2, etc 
from some_small_table 
where not exists 
(subquery to check for existing records) 
Смежные вопросы