如何将数据插入表中?

时间:2013-08-05 07:08:18

标签: python database postgresql

我使用此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语句手动获取值,但我希望我的代码获取存储在变量中的值。

3 个答案:

答案 0 :(得分:1)

SQL不支持变量的概念。

要使用变量,您必须使用编程语言,例如JavaCXojo。其中一种语言是PL/pgSQL,您可以将其视为SQL的超集。作为Postgres安装程序的一部分,PL / PgSQL通常是bundled,但并非总是如此。

我建议你阅读一些关于SQL的基础教程。

请参阅此类似问题:How do you use script variables in PostgreSQL?

答案 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"