mysql如何設(shè)置默認(rèn)值

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)皋蘭免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
mysql設(shè)置默認(rèn)值的方法:用mysql建數(shù)據(jù)表設(shè)置默認(rèn)值,代碼為【stuSex varchar(2) default '男' check(stuSex in('男', '女'))】。
mysql設(shè)置默認(rèn)值的方法:
create table stu(
stuId varchar(30) primary key,
stuName varchar(50) not null,
stuSex varchar(2) default '男' check(stuSex in('男', '女')),
stuJg varchar(30),
stuDept varchar(40)
)
用mysql建數(shù)據(jù)表設(shè)置默認(rèn)值:
int 類(lèi)型:default 1; (直接加數(shù)值)
varchar類(lèi)型:default 'aaa'(用單引號(hào))
另:經(jīng)試驗(yàn),在mysql中default 要寫(xiě)在 check之前,否則報(bào)錯(cuò)
用ALTER TABLE語(yǔ)句,表名是TableName,字段名是FieldName。 ALTER TABLE `TableName` MODIFY COLUMN`FieldName` VARCHAR(14) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL; 設(shè)置字段的字符編碼為gbk的一段可以不用,如下就可以 ALTER TABLE `TableName` MODIFY COLUMN `FieldName` VARCHAR(14)
創(chuàng)建表時(shí)設(shè)置默認(rèn)值,請(qǐng)見(jiàn)下例(設(shè)置員工工資默認(rèn)值=2500):
create table employees (eid varchar(10) primary key,
empname varchar(50),entrydate date,
salary int default 2500);
修改字段默認(rèn)值,請(qǐng)見(jiàn)下例(修改員工工資默認(rèn)值為3000):
alter table employees modify salary int default 3000;
alter
table
[tablename]
drop
constraint
[標(biāo)識(shí)]
ALTER
TABLE
[tableName]
ADD
CONSTRAINT
[標(biāo)識(shí)]
DEFAULT
(25)
FOR
[columnName]
如果原字段沒(méi)有默認(rèn)值,下面一句就不用寫(xiě)了:
alter
table
[tablename]
drop
constraint
[標(biāo)識(shí)]
即先給此字段添加一個(gè)默認(rèn)值
要已經(jīng)有了默認(rèn)值就寫(xiě)上面的Ok
問(wèn)題:MySQL?datetime數(shù)據(jù)類(lèi)型設(shè)置當(dāng)前時(shí)間為默認(rèn)值
解決:
--?方法一:
由于MySQL目前字段的默認(rèn)值不支持函數(shù),所以以create_time?datetime?default?now()?的形式設(shè)置默認(rèn)值是不可能的。代替的方案是使用TIMESTAMP類(lèi)型代替DATETIME類(lèi)型。
TIMESTAMP列類(lèi)型自動(dòng)地用當(dāng)前的日期和時(shí)間標(biāo)記INSERT或UPDATE的操作。如果有多個(gè)TIMESTAMP列,只有第一個(gè)自動(dòng)更新。
自動(dòng)更新第一個(gè)TIMESTAMP列在下列任何條件下發(fā)生:
1.列值沒(méi)有明確地在一個(gè)INSERT或LOAD?DATA?INFILE語(yǔ)句中指定。
2.列值沒(méi)有明確地在一個(gè)UPDATE語(yǔ)句中指定且另外一些的列改變值。(注意一個(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()。
所以把日期類(lèi)型?選擇成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)值寫(xiě)上CURRENT_TIMESTAMP即可
--?方法二:
在MySQL5.0以上版本中也可以使用trigger來(lái)實(shí)現(xiàn)此功能。
create?table?test_time?(???
idint(11),???
create_time?datetime???
);???
delimiter?|???
create?trigger?default_datetime?beforeinsert?on?test_time???
foreach?row???
if?new.create_time?is?null?then???
set?new.create_time?=?now();???
end?if;|???
delimiter?;
--?方法三:
create?table?test(name?varchar(10),registerTime?datetime?default?getdate());
create?table?test(name?varchar(10),registerTime?datetime?default?'0000-00-00');
新聞名稱(chēng):mysql默認(rèn)值怎么處理 mysql如何設(shè)置默認(rèn)值
分享URL:http://chinadenli.net/article46/hipceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、ChatGPT、外貿(mào)網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站導(dǎo)航、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)