我正在尝试使用 CREATE 命令创建一个新数据库。这是SQL:
CREATE TABLE test( rok_utworzenia timestamp DEFAULT CURRENT_DATE );
但它会抛出一个错误说
'#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“CURRENT_DATE)”附近使用正确的语法
如果我将 DEFAULT 约束更改为常量,它会起作用,但如果我尝试使用任何函数或变量,则不会。为什么呢?
用这个:
CREATE TABLE test( rok_utworzenia timestamp DEFAULT CURRENT_TIMESTAMP );
来自MySQL 网站:
数据类型规范中的 DEFAULT value 子句指示列的默认值。除了一个例外,默认值必须是一个常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为 NOW() 或 CURRENT_DATE 等函数的值。例外情况是您可以将 CURRENT_TIMESTAMP 指定为 TIMESTAMP 列的默认值。
试试这个 CURRENT_TIMESTAMP
:
CREATE TABLE test( rok_utworzenia timestamp DEFAULT CURRENT_TIMESTAMP );