【问题标题】:INSERT with web.py插入 web.py
【发布时间】:2013-05-22 06:29:17
【问题描述】:

我启动了一个名为 GREEN.db 的新数据库,其中一个 TABLE 定义如下:

CREATE TABLE articles(
                      "articleID" serial NOT NULL,

                      "articleTitle" character varying(21) NOT NULL,

                      "articleContent" text NOT NULL,

                      "articleAuthor" character varying(7) NOT NULL ,

                      "articleTime" timestamp without time zone DEFAULT now(),

                      CONSTRAINT articles_pkey PRIMARY KEY ("articleID")
                      )

我的代码是这样写的:

db = web.database(dbn='postgres', db='green',user='YOng',password='xxx')

......

i = web.input()
t = time.localtime(time.time())
st = time.strftime("%Y-%m-%d %H:%M:%S", t)
datas = list(db.query("""SELECT * FROM articles ORDER BY "articleID" DESC"""))
    n = db.insert("articles",
    articleID=len(datas)+1, \
    articleTitle=i.post_title, \
    articleContent=i.post_content, \
    articleAuthor="YOng", \
    articleTime=st)
web.seeother('/')

错误抛出说:

psycopg2.ProgrammingError:关系“articles”的列“articleid” 不存在 LINE 1 : INSERT INTO 文章 (articleTitle, 文章作者,文章ID... ^

我不知道这段代码发生了什么。有人有什么建议吗?任何帮助表示赞赏〜

【问题讨论】:

    标签: insert web.py psycopg2


    【解决方案1】:

    也许是因为大写字母?

    错误是:

    column "articleid" of relation "articles" does not exist
    

    您的栏目名称是“articleID”

    【讨论】:

    • 没错。 web.py 将查询翻译如下:INSERT INTO articles (articleID, articleTitle, articleContent, articleAuthor, articleTime) VALUES (...)。根据 SQL,列名被视为不区分大小写,除非您用双引号将它们括起来:postgresql.org/docs/current/static/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 2011-07-17
    相关资源
    最近更新 更多