mysql>
alter
table
test
add
column
birth
date
Query
OK,
0
rows
affected
(0.36
sec)
Records:
0
Duplicates:
0
Warnings:
0
查询一下数据,看看结果:
mysql>
select
*
from
test
+------+--------+----------------------------------+------------+-------+
|
t_id
|
t_name
|
t_password
|
t_birth
|
birth
|
+------+--------+----------------------------------+------------+-------+
|
1
|
name1
|
12345678901234567890123456789012
|
NULL
|
NULL
|
|
2
|
name2
|
12345678901234567890123456789012
|
2013-01-01
|
NULL
|
+------+--------+----------------------------------+------------+-------+
2
rows
in
set
(0.00
sec)
从上面结果可以看出,吵山插入的birth字段,默认值为空。我们再猛棚来试一下,添加枝碰则一个birth1字段,设置它不允许为空。
mysql>
alter
table
test
add
column
birth1
date
not
null
Query
OK,
0
rows
affected
(0.16
sec)
Records:
0
Duplicates:
0
Warnings:
0
居然执行成功了!?意外了!我原来以为,这个语句不会成功的,因为我没有给他指定一个默认值。我们来看看数据:
mysql>
select
*
from
test
+------+--------+----------------------------------+------------+-------+------------+
|
t_id
|
t_name
|
t_password
|
t_birth
|
birth
|
birth1
|
+------+--------+----------------------------------+------------+-------+------------+
|
1
|
name1
|
12345678901234567890123456789012
|
NULL
|
NULL
|
0000-00-00
|
|
2
|
name2
|
12345678901234567890123456789012
|
2013-01-01
|
NULL
|
0000-00-00
|
+------+--------+----------------------------------+------------+-------+------------+
2
rows
in
set
(0.00
sec)
哦,明白了,系统自动将date类型的值,设置了一个默认值:0000-00-00。下面我来直接指定一个默认值看看:
mysql>
alter
table
test
add
column
birth2
date
default
'2013-1-1'
Query
OK,
0
rows
affected
(0.28
sec)
Records:
0
Duplicates:
0
Warnings:
0
mysql>
select
*
from
test
+------+--------+----------------------------------+------------+-------+------------+------------+
|
t_id
|
t_name
|
t_password
|
t_birth
|
birth
|
birth1
|
birth2
|
+------+--------+----------------------------------+------------+-------+------------+------------+
|
1
|
name1
|
12345678901234567890123456789012
|
NULL
|
NULL
|
0000-00-00
|
2013-01-01
|
|
2
|
name2
|
12345678901234567890123456789012
|
2013-01-01
|
NULL
|
0000-00-00
|
2013-01-01
|
+------+--------+----------------------------------+------------+-------+------------+------------+
2
rows
in
set
(0.00
sec)
看到没,将增加的birth2字段,就有一个默认值了,而且这个默认值是我们手工指定的。
关于MySQL中给表添加一个字段,本文就介绍这么多,希望对大家有所帮助,谢谢!
你埋者枣这样设置之后,是不能弯拆插入的嫌扮空(NULL),而是能插入空串(\\'\\')。如果不让插入空串,应该使用check,例如:
CREATE TABLE table2 (
title varchar(50) NOT NULL,
message varchar(200) NOT NULL DEFAULT \\'内容\\',
msname varchar(50) NOT NULL DEFAULT \\'发布人\\',
date date NOT NULL,
PRIMARY KEY (`title`) ,
CHECK (title!=\\'\\')
)
Mysql设置某字段唯一
1.建表时加上唯一性约束
CREATE TABLE `t_user` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(18) NOT NULL unique,
`password` varchar(18) NOT NULL,
PRIMARY KEY (`Id`) www.2cto.com
) ENGINE=InnoDB AUTO_INCREMENT=1018 DEFAULT CHARSET=gbk
2.给已经建好的表加上唯一性约束
ALTER TABLE `t_user` ADD unique(`username`)
mysql主键索引和唯一索引
1.主键一定是唯一性索引,唯一性索引并不一定就是主键;
2.一个表氏盯虚中可以有多个唯一歼燃性索引,但只能有一个主键;
3.主键列不允许空值则孙,而唯一性索引列允许空值。
采纳噢
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)