MariaDB:如何在default子句中使用函数?

MariaDB:如何在default子句中使用函数?,mariadb,Mariadb,我使用最新鲜的MariaDB: select @@version 10.4.8-MariaDB 运行此脚本时: CREATE TABLE t1 ( uuid_field VARCHAR(32) DEFAULT (uuid()), binary_uuid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())) ); 接收错误: 函数或表达式“UUID\u TO_BIN()”不能用于binary\u UUID 对于测试,我运行了以下命令,它可以正

我使用最新鲜的MariaDB:

select @@version
10.4.8-MariaDB
运行此脚本时:

CREATE TABLE t1 (
  uuid_field     VARCHAR(32) DEFAULT (uuid()),
  binary_uuid    BINARY(16)  DEFAULT (UUID_TO_BIN(UUID()))
);
接收错误: 函数或表达式“
UUID\u TO_BIN
()”不能用于
binary\u UUID

对于测试,我运行了以下命令,它可以正常工作:

CREATE TABLE t2 (
  uuid_field     VARCHAR(32) DEFAULT (uuid()),
  binary_uuid    BINARY(16)
);
第一种情况有什么问题?可以在DEFAULT子句中使用用户的函数吗?

默认列选项 MariaDB从10.2.1开始 MariaDB 10.2.1增强了默认条款。一些增强包括

DEFAULT子句现在可以与表达式或函数一起使用


它的意思是:仅内置函数,而不是用户定义的

将二进制改为“生成列”