日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库sql审核_Inception SQL审核注解

發布時間:2023/12/19 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库sql审核_Inception SQL审核注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Inception SQL審核注解

發布時間:2020-08-14 08:03:18

來源:ITPUB博客

閱讀:91

作者:haoge0205

Inception SQL審核注解

1、建表語句

建表語句檢查項

表屬性的檢查項

這個表不存在

對于create table like,會檢查like的老表是不是存在。

對于create table db.table,會檢查db這個數據庫是不是存在

表名、列名、索引名的長度不大于64個字節

如果建立的是臨時表,則必須要以tmp為前綴

必須要指定建立innodb的存儲引擎(可配置)

必須要指定utf8的字符集(字符串可配置,指定支持哪些字符集)

表必須要有注釋(可配置)

表不能建立為分區表(可配置)

只能有一個自增列

索引名字不能是Primay

不支持Foreign key(可配置)

建表時,如果指定auto_increment的值不為1,報錯(可配置)

如果自增列的名字不為id,說明有可能是有意義的,MySQL這樣使用比較危險,所以報警(可配置)

列屬性的檢查項

不能設置列的字符集(可配置)

列的類型不能使用集合、枚舉、位圖類型。(可配置)

列必須要有注釋(可配置)

char長度大于20的時候需要改為varchar(長度可配置)

列的類型不能是BLOB/TEXT。(可配置)

每個列都使用not null(可配置)

如果列為BLOB/TEXT類型的,則這個列不能設置為NOT NULL。

如何是自增列,則使用無符號類型(可配置)

如果自增列,則長度必須要大于等于4個字節(可配置)

如果是timestamp類型的,則要必須指定默認值。

對于MySQL5.5版本(包含)以下的數據庫,不能同時有兩個TIMESTAMP類型的列,如果是DATETIME類型,則不能定義成DATETIME DEFAULT CURRENT_TIMESTAMP及ON UPDATE CURRENT_TIMESTAMP等語句。

每個列都需要定義默認值,除了自增列、主鍵列及大字段列之外(可配置)

不能有重復的列名

索引屬性檢查項

索引必須要有名字

不能有外鍵(可配置)

Unique索引必須要以uniq_為前綴(可配置)

普通索引必須要以idx_為前綴(可配置)

索引的列數不能超過5個(數目可以配置)

表必須要有一個主鍵(可配置)

最多有5個索引(數目可配置)

建索引時,指定的列必須存在。

索引中的列,不能重復

BLOB列不能建做KEY

索引長度不能超過766

不能有重復的索引,名字及內容

默認值檢查項

BLOB/TEXT類型的列,不能有非NULL的默認值

MySQL5.5以下(含)的版本,對于DATETIME類型的列,不能有函數NOW()的默認值。

如果設置默認值為函數,則只能是NOW()。

如果默認值為NULL,但列類型為NOT NULL,或者是主鍵列,或者定義為自增列,則報錯。

自增列不能設置默認值。

2、插入語句

插入語句檢查項

表是否存在

必須指定插入列表,也就是要對哪幾個列指定插入值,如insert into t (id,id2) values(...),(可配置)

必須指定值列表,與上面對應的列,插入的值是什么,必須要指定。

插入列列表與值列表個數相同,上面二者的個數需要相同,如果沒有指定列列表(因為可配置),則值列表長度要與表列數相同。

不為null的列,如果插入的值是null,報錯(可配置)

插入指定的列名對應的列必須是存在的。

插入指定的列列表中,同一個列不能出現多次。

插入值列表中的簡單表達式會做檢查,但具體包括什么不一一指定

3、更新、刪除語句

更新、刪除語句檢查項

表是否存在

必須有where條件(可配置)

delete語句不能有limit條件(可配置)

不能有order by語句(可配置)

影響行數大于10000條,則報警(數目可配置)

對WHERE條件這個表達式做簡單檢查,具體包括什么不一一指定

對更新列的值列表表達式做簡單檢查,具體不一一指定

對更新列對象做簡單檢查,主要檢查列是不是存在等

多表更新、刪除時,每個表必須要存在

總結

以上是生活随笔為你收集整理的mysql数据库sql审核_Inception SQL审核注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。