1、mysql默認(rèn)的有
我們擁有10多年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺(tái)小程序開發(fā)、手機(jī)網(wǎng)站開發(fā)、H5建站、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
mysql
test
information_schema
performance_schema
2、創(chuàng)建用戶時(shí)候可以設(shè)定默認(rèn)數(shù)據(jù)庫(kù)
mysql -uroot -p123456 -e"CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';"
mysql -uroot -p123456 -e"GRANT ALL ON db01.* TO 'user1'@'localhost';"
3、登陸時(shí)候可以指定數(shù)據(jù)庫(kù),例如
mysql -A -uroot -p123456 -Dmysql
修改日期類型為timestamp 并允許空,如下:
CREATE TABLE `test` (`aaaa` varchar(50) NOT NULL,`createday` timestamp NULL DEFAULT
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT
CHARSET=utf8;
如果是在navicat下操作的話,設(shè)置字段的類型為timestamp,默認(rèn)值寫上CURRENT_TIMESTAMP
擴(kuò)展資料
mysql中的時(shí)間類型:
mysql中我們用的時(shí)間類型有DATE DATETIME TIME TIMESTAMP四種:
1、DATE只表示日期,檢索以YYYY-MM-DD的格式顯示,范圍是1000-01-01到9999-12-31。
2、TIME只表示時(shí)間,檢索以HH:MM:SS格式顯示,范圍是00:00:00到23:59:59。
3、DATETIME表示了日期和時(shí)間,檢索以YYYY-MM-DD HH:MM:SS格式顯示。
4、TIMESTAMP和DATETIME表示格式一樣兩者的不同點(diǎn)如下:
當(dāng)使用timestamp的時(shí)候,數(shù)據(jù)有更新的時(shí)候這個(gè)字段自動(dòng)更新為當(dāng)前時(shí)間,所以可以作為lastmodify使用,這個(gè)變化是默認(rèn)設(shè)置,如果想使時(shí)間不更新可以設(shè)置DEFAULT CURRENT_TIMESTAMP
timestamp的范圍不能早于1970或者晚于2037,超過這個(gè)時(shí)間范圍的話為0。
timestamp存儲(chǔ)的時(shí)候是轉(zhuǎn)為UTC存儲(chǔ)的,獲取的時(shí)候根據(jù)客戶端所在時(shí)區(qū)進(jìn)行展示。
timestamp占4個(gè)字節(jié),datetime占8個(gè)字節(jié)。
你設(shè)計(jì)表的時(shí)候有個(gè)選項(xiàng)是默認(rèn)值你可以輸入你想寫的默認(rèn)值,如果你是寫sql語句你字段后面加個(gè)default 0
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)
--SQL:
CREATE TABLE test(
i_a int NOT NULL DEFAULT 1,
ts_b timestamp NOT NULL DEFAULT NOW(),
c_c char(2) NOT NULL DEFAULT '1'
);
--以下SQL不合法
--time_d time NOT NULL DEFAULT CURTIME(),
--date_e date NOT NULL DEFAULT CURDATE(),
--datetime_f datetime NOT NULL DEFAULT NOW(),
總結(jié)
int類型:默認(rèn)值也得是整型,并且default后邊不要()括號(hào)。
char類型:默認(rèn)值使用單引號(hào)。
DATETIME類型:NOW()函數(shù)以'YYYY-MM-DD
HH:MM:SS'返回當(dāng)前的日期時(shí)間,可以直接存到DATETIME字段中。不支持使用系統(tǒng)默認(rèn)值。
DATE類型:CURDATE()以'YYYY-MM-DD'的格式返回今天的日期,可以直接存到DATE字段中。不支持使用系統(tǒng)默認(rèn)值。
TIME類型:CURTIME()以'HH:MM:SS'的格式返回當(dāng)前的時(shí)間,可以直接存到TIME字段中。不支持使用系統(tǒng)默認(rèn)值。
參考資料
mysql表字段默認(rèn)值
用sql語句創(chuàng)建表時(shí),給表字段默認(rèn)值出錯(cuò)。
比如:mssql中
CREATE TABLE dnt_forums(
aa int NOT NULL DEFAULT (''),
bb date NOT NULL DEFAULT (getdate()),
cc char(50) NOT NULL DEFAULT (null)
}
請(qǐng)問上述的sql語句要如何修改在mysql中才能使用
aa 是 int 類型,默認(rèn)值也得是整型,并且default后邊不要()括號(hào)
bb date類型不支持使用系統(tǒng)默認(rèn)值,改成timestamp,能過now()取系統(tǒng)時(shí)間
cc 已經(jīng)不允許為空(not null)所以不能默認(rèn)為 null ,可以改成空字符串
CREATE TABLE dnt_forums(
aa int NOT NULL DEFAULT 2,
bb timestamp NOT NULL DEFAULT now(),
cc char(50) NOT NULL DEFAULT ''
);
--
方法一:
由于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即可
網(wǎng)頁(yè)題目:mysql默認(rèn)怎么寫,mysql設(shè)置默認(rèn)
分享地址:http://chinadenli.net/article44/dssheee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、外貿(mào)建站、做網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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í)需注明來源: 創(chuàng)新互聯(lián)