Q1、
mysql> create table reservation(
-> ordernum int not null auto_increment,
-> fid int references flight,
-> cid int references customer,
-> qty int,
-> orderdate date default now(),
-> cardnum char(20) references card,
-> primary key(ordernum)
-> );
ERROR 1067 (42000): Invalid default value for 'orderdate'Q2、
mysql> create table flight(
-> fid int not null default '000000' auto_increme
-> fnumber char(20) not null,
-> fdate date,
-> ftime datetime,
-> price double default '0.00',
-> capacity int,
-> dest int references airport,
-> orig int references airport,
-> primary key(fid)
-> );
ERROR 1067 (42000): Invalid default value for 'fid'
mysql> create table reservation(
-> ordernum int not null auto_increment,
-> fid int references flight,
-> cid int references customer,
-> qty int,
-> orderdate date default now(),
-> cardnum char(20) references card,
-> primary key(ordernum)
-> );
ERROR 1067 (42000): Invalid default value for 'orderdate'Q2、
mysql> create table flight(
-> fid int not null default '000000' auto_increme
-> fnumber char(20) not null,
-> fdate date,
-> ftime datetime,
-> price double default '0.00',
-> capacity int,
-> dest int references airport,
-> orig int references airport,
-> primary key(fid)
-> );
ERROR 1067 (42000): Invalid default value for 'fid'
-> fid int not null auto_incremet
-> fnumber char(20) not null, 即可,自然会从1开始, 000001
000002
你可以在显示中处理
Query OK, 1 row affected (0.11 sec)mysql> select * from t3;
+--------+
| fid |
+--------+
| 000001 |
+--------+
1 row in set (0.08 sec)
我想把订单时间设置为当前时间:
我怎么就没想到zerofill 呢?呵呵
总想着用default!
-> orderdate date default now(),
我试了 ,不行
create table reservation(
ordernum int not null auto_increment,
fid int references flight,
cid int references customer,
qty int,
orderdate date CURDATE(),
cardnum char(20) references card,
primary key(ordernum)
);
这个恐怕不能如愿了。似乎mysql并不支持now()函数或者curdate()函数作为default的计算值。其实你压根不用为此担心啊。
mysql> create table t3(id int, t date);
Query OK, 0 rows affected (0.11 sec)mysql> insert into t3 values(1, now());
Query OK, 1 row affected (0.09 sec)mysql> select * from t3;
+------+------------+
| id | t |
+------+------------+
| 1 | 2008-03-29 |
+------+------------+
1 row in set (0.01 sec)无非是多写了一个字段插入now()