日期:2014-05-17  浏览次数:20503 次

mysql默认值不可以用函数吗?我遇到了如下错误
CREATE TABLE `purchasebill` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `purchase_id` int(11) DEFAULT NULL,
  `supplier` varchar(255) DEFAULT NULL,
  `date` date DEFAULT curdate(),
  PRIMARY KEY (`Id`)
);

------解决方案--------------------
你可以考虑用触发器实现:

在5.0中可以使用触发程序
create table test (id int not null auto_increment primary key, t datetime);
delimiter //
create trigger ins_time before insert on test 
for each row set NEW.t = now(); //
delimiter ;

insert into test (id) values (NULL);

大致如此


------解决方案--------------------
引用:
Quote: 引用:

你可以考虑用触发器实现:

在5.0中可以使用触发程序
create table test (id int not null auto_increment primary key, t datetime);
delimiter //
create trigger ins_time before insert on test 
for each row set NEW.t = now(); //
delimiter ;

insert into test (id) values (NULL);

大致如此

我试过了,确实可以,但是我对那个NEW.t不太懂,请讲解一下好吗?提供一个链接也行。谢谢


这个new 其实就是一条要插入的记录,在触发器中可以捕获到这条插入的记录,然后new.t 就表示这条要新插入的记录的,t这一列的值。