我试图在 MySQL 8.0.13 版中将默认值设置为 UUID()。但成功执行后,默认值将重置为 NOT NULL。
MySQL版本:
这是我的 CREATE TABLE 脚本
CREATE TABLE `session` (
`id` binary(16) NOT NULL DEFAULT (UUID_TO_BIN(UUID(), TRUE)),
`start_timestamp` timestamp NOT NULL,
`end_timestamp` timestamp NULL DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`status` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Run Code Online (Sandbox Code Playgroud)
表生成的日志输出,
SQL script was successfully applied to the database.
执行后的 TABLE 定义:
CREATE TABLE `session` (
`id` binary(16) NOT NULL,
`start_timestamp` timestamp NOT …Run Code Online (Sandbox Code Playgroud)