我使用此create命令创建了表:
CREATE TABLE test_table(id INT PRIMARY KEY,name VARCHAR(50),价格INT)
我想插入此表,其中值已存储在变量
中bookdb=# name = 'algorithms'
bookdb-# price = 500
bookdb-# INSERT INTO test_table VALUES(1,'name',price);
我收到以下错误:
错误:“name”处或附近的语法错误 第1行:name ='algorithms'
任何人都可以指出错误并提出上述解决方案吗?
提前致谢
修改
import psycopg2
import file_content
try:
conn = psycopg2.connect(database='bookdb',user='v22')
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS book_details")
cur.execute("CREATE TABLE book_details(id INT PRIMARY KEY,name VARCHAR(50),price INT)")
cur.execute("INSERT INTO book_details VALUES(1,'name',price)")
conn.commit()
except:
print "unable to connect to db"
我已经使用上面的代码将值插入表中,变量名称和价格包含要插入到表中的值在file_content python文件中可用并且我已导入该文件。正常的INSERT语句手动获取值,但我希望我的代码获取存储在变量中的值。
答案 0 :(得分:1)
SQL不支持变量的概念。
要使用变量,您必须使用编程语言,例如Java,C,Xojo。其中一种语言是PL/pgSQL,您可以将其视为SQL的超集。作为Postgres安装程序的一部分,PL / PgSQL通常是bundled,但并非总是如此。
我建议你阅读一些关于SQL的基础教程。
答案 1 :(得分:0)
如果您使用的是PSQL控制台:
\set name 'algo'
\set price 10
insert into test_table values (1,':name',:price)
\g
答案 2 :(得分:0)
这里没有安装postgres,但你可以试试这个
import psycopg2
import file_content
try:
conn = psycopg2.connect(database='bookdb',user='v22')
cur = conn.cursor()
cur.execute("DROP TABLE IF EXISTS book_details")
cur.execute("CREATE TABLE book_details(id INT PRIMARY KEY,name VARCHAR(50),price INT)")
cur.execute("INSERT INTO book_details VALUES(1, '%s', %s)" % (name, price))
conn.commit()
except:
print "unable to connect to db"