python - 如何在 psycopg 中使用 Postgres 自动增量,使用 DEFAULT 时抛出异常
问题描述
使用 Python/ psycopg,什么 SQL 语句可以使用主键/id 字段的自动递增功能?
当我使用DEFAULT作为占位符时,我得到:
Exception in Class ==> LoadDatasource column "DEFAULT" does not exist
LINE 1: INSERT INTO SOURCE VALUES ("DEFAULT","value", "value", ...)
我试图通过不指定列名来使用“盲插入”,如下所示:
INSERT into <table_name> values();
我使用“盲插”的原因。我已经生成了一个与数据库列的顺序匹配的 CSV,并且只想插入 CSV(但我需要以编程方式执行此操作,因为我正在清理,沿途操作一些数据),但值在命令。
CSV 中唯一缺少的值是主键/id 列,我正在尝试使用“DEFAULT”,以便让 Postgres 弄清楚这一点。
该表是通过以下方式创建的:
CREATE TABLE if not exists sources
(
id serial PRIMARY KEY,
...
解决方案
DEFAULT
不应该被引用。它是 Postgres 中的关键字。
另一个建议是不要使用盲插入,这样你就可以定义 CSV 文件覆盖的列,省略自动增量列,这样你就不需要使用“默认”,Postgres 会自动找出要做什么与您的专栏
推荐阅读
- excel - VBA - 根据它们的值更改图表上的每个点颜色
- c++ - 使用 Serial.print() 的 millis() 函数输出
- python - python中的字符串格式-使用循环填充
- android - 仅在一侧创建带有圆角的文本视图
- python - 如何从 Pyshark 中的 LiveCapture 获取数据包字节
- sublimetext3 - 如何在崇高的文本编辑器中创建评论?
- java - 在春季内部异常中没有收到消息
- python - 使用python创建布局networkx图形布局
- c++ - 在 const Class 函数中更改类指针的值会在某些编译器中产生错误,但在其他编译器中不会
- java - 休眠中的 SQL 查询以包括子集但排除超集