-- 方法一:
成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、西盟網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為西盟等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
由于MySQL目前字段的默認(rèn)值不支持函數(shù),所以以create_time datetime default now() 的形式設(shè)置默認(rèn)值是不可能的。代替的方案是使用TIMESTAMP類型代替DATETIME類型。
TIMESTAMP列類型自動(dòng)地用當(dāng)前的日期和時(shí)間標(biāo)記INSERT或UPDATE的操作。如果有多個(gè)TIMESTAMP列,只有第一個(gè)自動(dòng)更新。
自動(dòng)更新第一個(gè)TIMESTAMP列在下列任何條件下發(fā)生:
1.列值沒有明確地在一個(gè)INSERT或LOAD DATA INFILE語句中指定。
2.列值沒有明確地在一個(gè)UPDATE語句中指定且另外一些的列改變值。(注意一個(gè)UPDATE設(shè)置一個(gè)列為它已經(jīng)有的值,這將不引起TIMESTAMP列被更新,因?yàn)槿绻阍O(shè)置一個(gè)列為它當(dāng)前的值,MySQL為了效率而忽略更改。)
3.你明確地設(shè)定TIMESTAMP列為NULL.
4.除第一個(gè)以外的TIMESTAMP列也可以設(shè)置到當(dāng)前的日期和時(shí)間,只要將列設(shè)為NULL,或NOW()。
所以把日期類型 選擇成timestamp 允許空就可以了
CREATE TABLE test (
uname varchar(50) NOT NULL,
updatetime timestamp NULL DEFAULTCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果要在navicat下操作的話,將字段設(shè)置為timestamp,然后默認(rèn)值寫上CURRENT_TIMESTAMP即可
alter
table
[tablename]
drop
constraint
[標(biāo)識(shí)]
ALTER
TABLE
[tableName]
ADD
CONSTRAINT
[標(biāo)識(shí)]
DEFAULT
(25)
FOR
[columnName]
如果原字段沒有默認(rèn)值,下面一句就不用寫了:
alter
table
[tablename]
drop
constraint
[標(biāo)識(shí)]
即先給此字段添加一個(gè)默認(rèn)值
要已經(jīng)有了默認(rèn)值就寫上面的Ok
1、如果您打算插入記錄時(shí)使用默認(rèn)值INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]這是mysql增加記錄的SQL語句,在VALUES后面的括號(hào)內(nèi)使用DEFAULT將會(huì)使用默認(rèn)值最為字段的值。2、如果您打算讀取某個(gè)表字段的默認(rèn)值可以使用DESCRIBE {DESCRIBE | DESC} tbl_name [col_name | wild]參考下面的例子mysql DESCRIBE city;
+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Name | char(35) | NO | | | |
| Country | char(3) | NO | UNI | | |
| District | char(20) | YES | MUL | | |
| Population | int(11) | NO | | 0 | |
+------------+----------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
text字段不可以有默認(rèn)值。
mysql text類型沒有默認(rèn)值,如果該字段沒有值,則該字段是空,即is null 。
使用select語句時(shí)應(yīng)注意:(test是表名,description是字段名,類型是text) 。
select * from test where description = null; 等價(jià)為 select * from test where description = 'null'。
即此時(shí)description 值是null才可以取出。
如果description字段沒有填入值,是系統(tǒng)設(shè)置的,則執(zhí)行 select * from test where description is null,即可。
命令語法如下
create table 表名(列名稱 數(shù)據(jù)類型 default 默認(rèn)值);
2
如果圖形化界面操作,如phpmyadmin的話,一般直接默認(rèn)值就可以設(shè)置選擇呢
END
修改數(shù)據(jù)庫表的列默認(rèn)值
命令行界面
若本身存在默認(rèn)值,則先刪除
alter table表名alter column字段名drop default;
然后設(shè)置默認(rèn)值(若本身不存在則可以直接設(shè)定)
alter table表名 alter column字段名 set default默認(rèn)值;
再次返回表的結(jié)構(gòu)視圖,你會(huì)發(fā)現(xiàn)如下圖。剛剛設(shè)置的默認(rèn)值已經(jīng)更新為“百度經(jīng)驗(yàn)”了
圖形界面操作修改
圖形界面操作設(shè)置就非常簡單了,直接編輯表的結(jié)構(gòu)點(diǎn)擊需要修改的列即可。
如下圖打開找到默認(rèn)值一般都有無,和自定義等選項(xiàng)