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

时间:2018-10-26 13:27:24

标签: mysql

我正在使用的MySQL 8.0.12实例似乎无法使用默认表达式定义表。

我直接从文档中粘贴了代码,除非我删除默认表达式并将其替换为文字默认值,否则我将收到1064错误。

我知道某些引擎不应该支持所有默认表达式,但是错误代码应该有所不同(ER_UNSUPPORTED_ACTION_ON_DEFAULT_VAL_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())
);

1 个答案:

答案 0 :(得分:0)

由于@Raymond Niljand的建议,我刚刚检查了发行说明,实际上仅.13版支持默认表达式。

在阅读CREATE TABLE文档时,我不怀疑自己正在使用的是3天以前的功能,并且这样的实质性功能会在一个点版本和另一个点版本之间添加...