命令語法如下
成都創(chuàng)新互聯(lián)公司是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),賣鏈接,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
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)視圖,你會發(fā)現(xiàn)如下圖。剛剛設(shè)置的默認(rèn)值已經(jīng)更新為“百度經(jīng)驗(yàn)”了
圖形界面操作修改
圖形界面操作設(shè)置就非常簡單了,直接編輯表的結(jié)構(gòu)點(diǎn)擊需要修改的列即可。
如下圖打開找到默認(rèn)值一般都有無,和自定義等選項(xiàng)
mysql如何設(shè)置默認(rè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 類型:default 1; (直接加數(shù)值)
varchar類型:default 'aaa'(用單引號)
另:經(jīng)試驗(yàn),在mysql中default 要寫在 check之前,否則報(bào)錯
MySQL的設(shè)置可以分為兩類:創(chuàng)建對象時的默認(rèn)值、在服務(wù)器和客戶端通信時的設(shè)置。創(chuàng)建對象時的默認(rèn)值MySQL服務(wù)器有默認(rèn)的字符集和校驗(yàn)規(guī)則,數(shù)據(jù)庫和每個數(shù)據(jù)表也有自己的默認(rèn)值。
-- 方法一:
由于MySQL目前字段的默認(rèn)值不支持函數(shù),所以以create_time datetime default now() 的形式設(shè)置默認(rèn)值是不可能的。代替的方案是使用TIMESTAMP類型代替DATETIME類型。
TIMESTAMP列類型自動地用當(dāng)前的日期和時間標(biāo)記INSERT或UPDATE的操作。如果有多個TIMESTAMP列,只有第一個自動更新。
自動更新第一個TIMESTAMP列在下列任何條件下發(fā)生:
1.列值沒有明確地在一個INSERT或LOAD DATA INFILE語句中指定。
2.列值沒有明確地在一個UPDATE語句中指定且另外一些的列改變值。(注意一個UPDATE設(shè)置一個列為它已經(jīng)有的值,這將不引起TIMESTAMP列被更新,因?yàn)槿绻阍O(shè)置一個列為它當(dāng)前的值,MySQL為了效率而忽略更改。)
3.你明確地設(shè)定TIMESTAMP列為NULL.
4.除第一個以外的TIMESTAMP列也可以設(shè)置到當(dāng)前的日期和時間,只要將列設(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即可
在sqlserver2000中可以這樣
create table test(name varchar(10),registerTime datetime default getdate());
設(shè)置默認(rèn)值。但在MySQ中
create table test(name varchar(10),registerTime datetime default now());
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp
onds to your MySQL server version for the right syntax to use near 'now()
)' at line 2
如何在MySQL中設(shè)置datetime型的當(dāng)前默認(rèn)值? [Re: jingang] Copy to clipboard
Posted by: wanghb507
Posted on: 2004-03-02 10:25
我看只能,在程序上處理了,因?yàn)樵?/p>
insert into test values('name', now());
中是正確的
如何在MySQL中設(shè)置datetime型的當(dāng)前默認(rèn)值? [Re: jingang] Copy to clipboard
Posted by: NcitZhang
Posted on: 2004-03-28 18:10
create table test(name varchar(10),registerTime datetime default getdate());
create table test(name varchar(10),registerTime datetime default '0000-00-00');
MySQL目前不支持列的Default 為函數(shù)的形式,如達(dá)到
你某列的默認(rèn)值為當(dāng)前更新日期與時間的功能,你可以使用TIMESTAMP列類型下面就
詳細(xì)說明TIMESTAMP列類型
| TIMESTAMP(14) | YYYYMMDDHHMMSS |
| TIMESTAMP(12) | YYMMDDHHMMSS |
| TIMESTAMP(10) | YYMMDDHHMM |
| TIMESTAMP(8) | YYYYMMDD |
| TIMESTAMP(6) | YYMMDD |
| TIMESTAMP(4) | YYMM |
| TIMESTAMP(2) | YY |
看你需要哪種時間的格式, 在插入數(shù)據(jù)的時候,給時間的字段設(shè)置成NULL就會自動變成當(dāng)前時間。給你舉個例子:
CREATE TABLE test (
'id' INT (3) UNSIGNED AUTO_INCREMENT,
'date1' TIMESTAMP (8),
PRIMARY KEY('id')
);
INSERT INTO test (id, date1) VALUES (1, NULL);
id date
1 20160429