Inception SQL稽核註解
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條件這個表示式做簡單檢查,具體包括什麼不一一指定
對更新列的值列表表示式做簡單檢查,具體不一一指定
對更新列物件做簡單檢查,主要檢查列是不是存在等
多表更新、刪除時,每個表必須要存在
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2649394/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Yearning + Inception SQL稽核平臺搭建SQL
- docker Yearning+Inception SQL稽核平臺DockerSQL
- mysql稽核平臺yearning及inception安裝MySql
- SQL稽核 | SQLE-SQL稽核平臺體驗報告SQL
- SQL稽核 | 如何使用 SQLE 進行開發階段 SQL稽核SQL
- mybatis原始碼-註解sqlMyBatis原始碼SQL
- [20240607]PL/SQL中sql語句的註解.txtSQL
- 軟通動力推出智慧稽核標註解決方案,讓內容稽核搭上AI快車AI
- Inception 搭建
- SpringBoot + MyBatis(註解版),常用的SQL方法Spring BootMyBatisSQL
- SQL稽核 | SQLE 相容 MySQL 8.0 測評MySql
- Inception網路
- SQL稽核 | 如何快速使用 SQLE 稽核各種型別的資料庫SQL型別資料庫
- 多表聯合查詢 - 基於註解SQLSQL
- 從Inception v1到Inception-ResNet,一文概覽Inception家族的「奮鬥史」
- 1024 開源首發 | SQL 稽核工具 SQLESQL
- SQL稽核 | “雲上”使用者可以一鍵使用 SQLE 稽核服務啦!SQL
- 影像分類丨Inception家族進化史「GoogleNet、Inception、Xception」Go
- mybatis中註解對映SQL示例程式碼MyBatisSQL
- java-Mybatis 註解方式實現sql語句JavaMyBatisSQL
- GAN量化評估方法——IS(Inception Score)和FID(Frechet Inception Distance score)
- SQL稽核 | 這裡有 MySQL/Oracle 最常用的 SQL 開發規則MySqlOracle
- 自定義註解例項實現SQL語句生成SQL
- MySQL Inception安裝使用MySql
- SQL稽核 | SQLE 二次開發環境搭建SQL開發環境
- [譯] TensorFlow 教程 – 07 Inception 模型模型
- 中小團隊快速構建SQL自動稽核系統SQL
- 註解專題(一)Java元註解,內建註解Java
- JAVA-註解(2)-自定義註解及反射註解Java反射
- SQL稽核平臺 Archery v1.8.0 LDAP功能配置步驟SQLLDA
- SQL稽核 | SQLE 如何開發一條自定義的規則SQL
- Java註解-後設資料、註解分類、內建註解和自定義註解Java
- @ResponseBody註解和@RequestBody註解使用
- 【Spring註解】事務註解@TransactionalSpring
- JPA SQL 查詢、結果集對映(@NamedNativeQuery、@ColumnResult註解說明)SQL
- 20180417PLSQL中sql語句格式化與註解問題SQL
- 學習MyBatis必知必會(7)~註解開發、動態SQLMyBatisSQL
- 註解