Mysql错误代码1293的原因是什么

时间:2012-11-02 07:31:13

标签: mysql

以下是mysql错误1293的消息:

  

SQL错误(1293):表定义不正确;只可以有一个人   在DEFAULT或ON UPDATE子句中使用CURRENT_TIMESTAMP的TIMESTAMP列

mysql的原因是什么只允许在每个表的DEFAULT或ON UPDATE子句中使用CURRENT_TIMESTAMP的一个TIMESTAMP列。

1 个答案:

答案 0 :(得分:8)

只有一个TIMESTAMP字段可以默认为“now” 我首先应该说,如果你试图使用CURRENT_TIMESTAMP或“default now”来定义多个MySQL TIMESTAMP字段,不幸的是这很糟糕,你不能在MySQL中这样做 我在尝试创建这样的表时遇到了这个MySQL TIMESTAMP错误:

create table users (
    id int unsigned auto_increment not null primary key,
    username varchar(50) not null unique,
    password varchar(40) not null,
    email_address varchar(128) not null unique,
    email_sent timestamp not null,
    last_login timestamp not null default now()
    ) ENGINE = InnoDB;

当我第一次解决这个问题时,我认为MySQL需要在任何其他TIMESTAMP字段之前声明“CURRENT_TIMESTAMP(默认现在)”字段,所以我解决了我的问题:

create table users (
   id int unsigned auto_increment not null primary key,
   username varchar(50) not null unique,
   password varchar(40) not null,
   email_address varchar(128) not null unique,
   last_login timestamp not null default now(),
   email_sent timestamp not null
 ) ENGINE = InnoDB;