2015-05-29 48 views
0

存在我想用Python腳本, 一個Postgres數據庫中插入一些值,但是當我嘗試它與我的代碼下面我會在我的第一個IF一個SyntaxError。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)) 

如果有人有想法,會不錯。 謝謝:)

+0

SQL中沒有'IF(...)'。相反,將條件放在where子句中。 :'INSERT INTO the_table(column_list中)VALUE_LIST WHERE NOT EXISTS' – joop

+0

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

+0

即鏈路是指(WHERE same_condition從same_table選1)不同的數據庫引擎。 –

回答

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)