创建新数据库表时,无法在DEFAULT约束中使用函数和变量

时间:2013-10-25 08:51:02

标签: mysql sql

我正在尝试使用CREATE命令创建一个新数据库。这是SQL:

  

CREATE TABLE test( rok_utworzenia timestamp DEFAULT CURRENT_DATE );

但它引发了一个错误说

  

'#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第2行'CURRENT_DATE'附近使用正确的语法

如果我将DEFAULT约束更改为常量,它会起作用,但如果我尝试使用任何函数或变量则不行。为什么会这样?

2 个答案:

答案 0 :(得分:1)

使用此:

CREATE TABLE test( rok_utworzenia timestamp DEFAULT CURRENT_TIMESTAMP );

来自MySQL site

  

数据类型规范中的DEFAULT值子句表示a   列的默认值。除了一个例外,默认值必须   是一个常数;它不能是一个功能或表达。这意味着,   例如,您不能将日期列的默认值设置为   NOW()或CURRENT_DATE等函数的值。例外   是你可以指定CURRENT_TIMESTAMP作为a的默认值   TIMESTAMP专栏。

答案 1 :(得分:1)

试试这个CURRENT_TIMESTAMP

CREATE TABLE test( rok_utworzenia timestamp DEFAULT CURRENT_TIMESTAMP );