mysql實現(xiàn)將列默認值設(shè)置為uuid
使用mysql版本為8.1.0
建表時設(shè)置
create table test( uuid varchar(100) NOT NULL default (uuid()) , aaaa varchar(100) not null default (uuid()) , primary key(uuid) );
可以看到主鍵和普通列都可以設(shè)置,但是要注意uuid()要加上括號,否則會報錯
修改時設(shè)置
ALTER TABLE test MODIFY uuid VARCHAR(36) DEFAULT (uuid()); ALTER TABLE test MODIFY aaaa VARCHAR(36) DEFAULT (uuid());
同樣注意要添加括號
使用自定義函數(shù)
目前沒有使用默認值的方式設(shè)置成功過,mysql好像不支持使用自定義函數(shù)作為默認值
CREATE FUNCTION custom_function_name()
RETURNS int
DETERMINISTIC
BEGIN
RETURN 1;
END;
ALTER TABLE test MODIFY aaaa VARCHAR(36) DEFAULT (custom_function_name());
會報錯 3770 - Default value expression of column 'aaaa' contains a disallowed function: custom_function_name.
而使用其他內(nèi)置函數(shù),如length、concat等是可以的
這時應(yīng)該只能使用觸發(fā)器了,需要注意的是,在設(shè)置默認值時,只要能不使用觸發(fā)器,就一定不要使用
CREATE FUNCTION custom_function_name()
RETURNS int
DETERMINISTIC
BEGIN
RETURN 1;
END;
create trigger tri_test_uuid
before insert on test
for each ROW
BEGIN
SET new.aaaa=custom_function_name();
END
;
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解MySQL數(shù)據(jù)庫insert和update語句
用于操作數(shù)據(jù)庫的SQL一般分為兩種,一種是查詢語句,也就是我們所說的SELECT語句,另外一種就是更新語句,也叫做數(shù)據(jù)操作語句。接下來通過本文給大家介紹MySQL數(shù)據(jù)庫insert和update語句,需要的朋友一起學(xué)習(xí)吧2016-04-04
mysql myisam 優(yōu)化設(shè)置設(shè)置
mysql myisam 優(yōu)化設(shè)置設(shè)置,需要的朋友可以參考下。2010-03-03
MySQL系統(tǒng)庫之information_schema的實現(xiàn)
information_schema用于存儲數(shù)據(jù)庫元數(shù)據(jù),本文主要介紹了MySQL系統(tǒng)庫之information_schema的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11
使用mysqldump對MySQL的數(shù)據(jù)進行備份的操作教程
這篇文章主要介紹了使用mysqldump對MySQL的數(shù)據(jù)進行備份的操作教程,示例環(huán)境基于CentOS操作系統(tǒng),需要的朋友可以參考下2015-12-12
MySQL數(shù)據(jù)庫的多種連接方式以及實用工具
mysql連接操作是客戶端進程與mysql數(shù)據(jù)庫實例進程進行通信,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫的多種連接方式以及實用工具的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-02-02
MYSQL常用字符串函數(shù)和時間函數(shù)示例詳解
字符串函數(shù)是最常用的的一種函數(shù),在一個具體應(yīng)用中通常會綜合幾個甚至幾類函數(shù)來實現(xiàn)相應(yīng)的應(yīng)用,這篇文章主要介紹了MYSQL常用字符串函數(shù)和時間函數(shù)的相關(guān)資料,需要的朋友可以參考下2025-07-07

