【问题标题】:psql prompt changes to "-#" and the statement isn't committedpsql 提示更改为“-#”并且该语句未提交
【发布时间】:2023-03-08 08:39:01
【问题描述】:

我是 Postgres 的新手,我建立了一个数据库和表。在 Ubuntu 18.04 命令行(在云服务器上)我使用 psql 发出以下命令:

INSERT INTO psq01(date, email, firstname, lastname, password, comments)
   VALUES ("052419", "mjs@outlook.com", "John", "Smith", "blank", "No comment")

发出该命令后,psql 命令提示符从=# 切换到-#,表示事务未完成,所以我发出了COMMIT,但提示符仍然显示为-#

我的问题是:insert into 命令之后我该怎么办?为什么我会收到 -# 提示?

【问题讨论】:

    标签: postgresql psql prompt


    【解决方案1】:

    dbname-# 提示意味着psql 正在等待续行,因为您还没有用分号 (;) 终止语句。

    输入一个分号并按 Enter 结束命令,或按 Ctrl+C 中断命令并重新开始。

    您确定要使用超级用户插入表格吗?

    【讨论】:

    • 关于超级用户的好处 - 我认为我应该在命令之前使用 sudo 因为我没有以 root 身份登录。但这只是一个测试。通常我会从网页插入。
    • 我的意思是提示符末尾的# 表明您是数据库 超级用户。普通用户有一个以>结尾的提示。
    • 我只是按照你说的做了,它确实让我返回到 =# 提示符,但它报告“在“sudo”处或附近出现语法错误。我不知道错误是什么。当我删除 sudo 时,它报告:“ column "052419" does not exist LINE 1: ...ail,firstname,lastname,password,cmets) VALUES ("052419", ..." 但那不是一列,它是价值。
    • 字符串文字在 SQL 中被单引号包围,但这是一个不同的问题。
    • 为了跟进,我将字符串更改为:INSERT INTO psq01(date,email,firstname,lastname,password,cmets) VALUES ('052419','mjs@outlook.com',' John','Smith','blank','No comment') 并且有效,但它报告“日期/时间字段值超出范围:INT:也许您需要不同的“日期样式”设置”。所以现在我有了正确的命令;我会解决日期字段问题。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多