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

sol*_*wzs 5 mysql

这是mysql错误1293的消息:

SQL错误(1293):表定义不正确; 在DEFAULT或ON UPDATE子句中只能有一个TIMESTAMP列和CURRENT_TIMESTAMP

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

Dee*_*epu 8

只有一个TIMESTAMP字段可以默认为"now"我首先要说的是,如果您尝试使用CURRENT_TIMESTAMP或"now 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;
Run Code Online (Sandbox Code Playgroud)

当我第一次解决这个问题时,我认为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;
Run Code Online (Sandbox Code Playgroud)

  • 错误消息实际上是误导性的 - 它意味着只有一个字段可以具有设置的默认值/更新值 - 但实际上,它只是第一个可以具有默认/更新值的时间戳字段. (3认同)