创建Postgresql表时,为什么出现“多个默认值”错误?

伊万·雅库申科(Ivan Yakushenko)

我正在尝试使用此查询创建表:

CREATE TABLE "real_estate_static" (
    "uid" SERIAL NOT NULL DEFAULT NEXTVAL("real_estate_uid_seq") PRIMARY KEY,
    "source_id" JSON NOT NULL,
    "source_url" TEXT NOT NULL,
    "created_at" TIMESTAMP NULL DEFAULT NULL,
    "address" TEXT NOT NULL,
    "city" TEXT NOT NULL,
    "state" TEXT NOT NULL,
    "zip" INTEGER NULL DEFAULT NULL,
    "latitude" NUMERIC NULL DEFAULT NULL,
    "longitude" NUMERIC NULL DEFAULT NULL,
    "type" TEXT NOT NULL,
    "category" TEXT NOT NULL,
    "square_ft" NUMERIC NULL DEFAULT NULL,
    "acres" NUMERIC NULL DEFAULT NULL,
    "images" JSON NULL DEFAULT NULL
);

错误:

multiple default values specified for column "uid" of table "real_estate_static"

我认为这可能是由于参数NOT NULL引起的错误,但是删除它并没有改变任何内容。我在Internet上发现的大多数此类错误问题都是由Django或其他ORM引起的,但这不是我的情况,因此我无法解决此问题。

serial 不是实型,而是包含默认值的别名。

从文档...

数据类型smallserial,serial和bigserial不是真实类型,而仅仅是创建唯一标识符列的符号方便(类似于某些其他数据库支持的AUTO_INCREMENT属性)。在当前的实现中,指定:

CREATE TABLE tablename (
    colname SERIAL
);

等效于指定:

CREATE SEQUENCE tablename_colname_seq AS integer;
CREATE TABLE tablename (
    colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

所以,所有的nextvalnot null是不必要的。serial为你做。

"uid" SERIAL PRIMARY KEY,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在PostgreSQL中创建生成的列时出现错误?

来自分类Dev

设置函数默认值时出现Javascript错误

来自分类Dev

创建表的默认值语法错误

来自分类Dev

在android sqlite中创建表时插入默认值

来自分类Dev

在SQLite中创建表时设置默认值

来自分类Dev

为什么在访问结构时需要默认值?

来自分类Dev

使用:=时,为什么with = TRUE是默认值?

来自分类Dev

为什么创建视图时出现错误

来自分类Dev

在Redshift维度表中创建默认值行以防止报表中出现空值

来自分类Dev

创建具有默认值的表

来自分类Dev

为什么需要默认值呢?

来自分类Dev

为什么nullglob不是默认值?

来自分类Dev

为什么在尝试创建新表mysql时出现此错误?

来自分类Dev

尝试创建表时出现错误,但不知道为什么

来自分类Dev

声明默认值为nil的数组时出现编译错误

来自分类Dev

声明默认值为nil的数组时出现编译错误

来自分类Dev

将非空列的默认值保留为空白时,将出现MySQL错误1366

来自分类Dev

在Hyperledger-Fabric-CA Server中使用MySQL时,如何解决“创建证书表时出错:错误1067:无效的默认值”?

来自分类Dev

创建默认值

来自分类Dev

为什么我的堆栈对象创建后会更改默认值?

来自分类Dev

为什么Spring的JDBC模板不使用表的默认值

来自分类Dev

在Hive中创建表时向列添加默认值

来自分类Dev

通过实体框架模式创建时,SQL Server 表中未设置默认值

来自分类Dev

为什么在Formik中创建验证时出现错误?

来自分类Dev

变量在创建时不采用默认值:结果为“不能为空”错误

来自分类Dev

错误代码1067,SQL状态42000:编译表时,“ memberSince”的默认值无效

来自分类Dev

为什么在使用||时使用“意外的“。”” 括号中默认值的运算符

来自分类Dev

使用G1收集器时,为什么-XX:+ ExplicitGCInvokesConcurrent不是默认值?

来自分类Dev

从super()运行方法时,为什么字段未初始化为非默认值?

Related 相关文章

  1. 1

    为什么在PostgreSQL中创建生成的列时出现错误?

  2. 2

    设置函数默认值时出现Javascript错误

  3. 3

    创建表的默认值语法错误

  4. 4

    在android sqlite中创建表时插入默认值

  5. 5

    在SQLite中创建表时设置默认值

  6. 6

    为什么在访问结构时需要默认值?

  7. 7

    使用:=时,为什么with = TRUE是默认值?

  8. 8

    为什么创建视图时出现错误

  9. 9

    在Redshift维度表中创建默认值行以防止报表中出现空值

  10. 10

    创建具有默认值的表

  11. 11

    为什么需要默认值呢?

  12. 12

    为什么nullglob不是默认值?

  13. 13

    为什么在尝试创建新表mysql时出现此错误?

  14. 14

    尝试创建表时出现错误,但不知道为什么

  15. 15

    声明默认值为nil的数组时出现编译错误

  16. 16

    声明默认值为nil的数组时出现编译错误

  17. 17

    将非空列的默认值保留为空白时,将出现MySQL错误1366

  18. 18

    在Hyperledger-Fabric-CA Server中使用MySQL时,如何解决“创建证书表时出错:错误1067:无效的默认值”?

  19. 19

    创建默认值

  20. 20

    为什么我的堆栈对象创建后会更改默认值?

  21. 21

    为什么Spring的JDBC模板不使用表的默认值

  22. 22

    在Hive中创建表时向列添加默认值

  23. 23

    通过实体框架模式创建时,SQL Server 表中未设置默认值

  24. 24

    为什么在Formik中创建验证时出现错误?

  25. 25

    变量在创建时不采用默认值:结果为“不能为空”错误

  26. 26

    错误代码1067,SQL状态42000:编译表时,“ memberSince”的默认值无效

  27. 27

    为什么在使用||时使用“意外的“。”” 括号中默认值的运算符

  28. 28

    使用G1收集器时,为什么-XX:+ ExplicitGCInvokesConcurrent不是默认值?

  29. 29

    从super()运行方法时,为什么字段未初始化为非默认值?

热门标签

归档