您好,登錄后才能下訂單哦!
Inception SQL審核注解
1、建表語(yǔ)句
建表語(yǔ)句檢查項(xiàng)
表屬性的檢查項(xiàng)
這個(gè)表不存在
對(duì)于create table like,會(huì)檢查like的老表是不是存在。
對(duì)于create table db.table,會(huì)檢查db這個(gè)數(shù)據(jù)庫(kù)是不是存在
表名、列名、索引名的長(zhǎng)度不大于64個(gè)字節(jié)
如果建立的是臨時(shí)表,則必須要以tmp為前綴
必須要指定建立innodb的存儲(chǔ)引擎(可配置)
必須要指定utf8的字符集(字符串可配置,指定支持哪些字符集)
表必須要有注釋?zhuān)膳渲茫?
表不能建立為分區(qū)表(可配置)
只能有一個(gè)自增列
索引名字不能是Primay
不支持Foreign key(可配置)
建表時(shí),如果指定auto_increment的值不為1,報(bào)錯(cuò)(可配置)
如果自增列的名字不為id,說(shuō)明有可能是有意義的,MySQL這樣使用比較危險(xiǎn),所以報(bào)警(可配置)
列屬性的檢查項(xiàng)
不能設(shè)置列的字符集(可配置)
列的類(lèi)型不能使用集合、枚舉、位圖類(lèi)型。(可配置)
列必須要有注釋?zhuān)膳渲茫?
char長(zhǎng)度大于20的時(shí)候需要改為varchar(長(zhǎng)度可配置)
列的類(lèi)型不能是BLOB/TEXT。(可配置)
每個(gè)列都使用not null(可配置)
如果列為BLOB/TEXT類(lèi)型的,則這個(gè)列不能設(shè)置為NOT NULL。
如何是自增列,則使用無(wú)符號(hào)類(lèi)型(可配置)
如果自增列,則長(zhǎng)度必須要大于等于4個(gè)字節(jié)(可配置)
如果是timestamp類(lèi)型的,則要必須指定默認(rèn)值。
對(duì)于MySQL5.5版本(包含)以下的數(shù)據(jù)庫(kù),不能同時(shí)有兩個(gè)TIMESTAMP類(lèi)型的列,如果是DATETIME類(lèi)型,則不能定義成DATETIME DEFAULT CURRENT_TIMESTAMP及ON UPDATE CURRENT_TIMESTAMP等語(yǔ)句。
每個(gè)列都需要定義默認(rèn)值,除了自增列、主鍵列及大字段列之外(可配置)
不能有重復(fù)的列名
索引屬性檢查項(xiàng)
索引必須要有名字
不能有外鍵(可配置)
Unique索引必須要以u(píng)niq_為前綴(可配置)
普通索引必須要以idx_為前綴(可配置)
索引的列數(shù)不能超過(guò)5個(gè)(數(shù)目可以配置)
表必須要有一個(gè)主鍵(可配置)
最多有5個(gè)索引(數(shù)目可配置)
建索引時(shí),指定的列必須存在。
索引中的列,不能重復(fù)
BLOB列不能建做KEY
索引長(zhǎng)度不能超過(guò)766
不能有重復(fù)的索引,名字及內(nèi)容
默認(rèn)值檢查項(xiàng)
BLOB/TEXT類(lèi)型的列,不能有非NULL的默認(rèn)值
MySQL5.5以下(含)的版本,對(duì)于DATETIME類(lèi)型的列,不能有函數(shù)NOW()的默認(rèn)值。
如果設(shè)置默認(rèn)值為函數(shù),則只能是NOW()。
如果默認(rèn)值為NULL,但列類(lèi)型為NOT NULL,或者是主鍵列,或者定義為自增列,則報(bào)錯(cuò)。
自增列不能設(shè)置默認(rèn)值。
2、插入語(yǔ)句
插入語(yǔ)句檢查項(xiàng)
表是否存在
必須指定插入列表,也就是要對(duì)哪幾個(gè)列指定插入值,如insert into t (id,id2) values(...),(可配置)
必須指定值列表,與上面對(duì)應(yīng)的列,插入的值是什么,必須要指定。
插入列列表與值列表個(gè)數(shù)相同,上面二者的個(gè)數(shù)需要相同,如果沒(méi)有指定列列表(因?yàn)榭膳渲茫?,則值列表長(zhǎng)度要與表列數(shù)相同。
不為null的列,如果插入的值是null,報(bào)錯(cuò)(可配置)
插入指定的列名對(duì)應(yīng)的列必須是存在的。
插入指定的列列表中,同一個(gè)列不能出現(xiàn)多次。
插入值列表中的簡(jiǎn)單表達(dá)式會(huì)做檢查,但具體包括什么不一一指定
3、更新、刪除語(yǔ)句
更新、刪除語(yǔ)句檢查項(xiàng)
表是否存在
必須有where條件(可配置)
delete語(yǔ)句不能有l(wèi)imit條件(可配置)
不能有order by語(yǔ)句(可配置)
影響行數(shù)大于10000條,則報(bào)警(數(shù)目可配置)
對(duì)WHERE條件這個(gè)表達(dá)式做簡(jiǎn)單檢查,具體包括什么不一一指定
對(duì)更新列的值列表表達(dá)式做簡(jiǎn)單檢查,具體不一一指定
對(duì)更新列對(duì)象做簡(jiǎn)單檢查,主要檢查列是不是存在等
多表更新、刪除時(shí),每個(gè)表必須要存在
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。