使用默认表达式时出现mysql错误1064

zpgglvta  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(227)

我正在使用的mysql 8.0.12示例似乎无法用默认表达式定义表。
我直接从文档中粘贴了代码,得到的错误是1064,除非我删除默认表达式并用文本默认值替换它们。
我知道有些引擎应该不支持所有默认表达式,但是错误代码应该是不同的(er\u unsupported\u action\u default\u valu generated,3774)。
是否有一个我没有找到的服务器选项关闭默认表达式并只允许文本?

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
dsf9zpds

dsf9zpds1#

感谢@raymond niljand的建议,我刚刚查看了发行说明,实际上默认表达式只在版本13中受支持。
在阅读create table文档时,我并不怀疑我看到的是一个3天的特性,而且这样一个重要的特性将在一个点版本和另一个点版本之间添加。。。

相关问题