提交 cbae6057 编写于 作者: martianzhang's avatar martianzhang

Merge branch 'master' of github.com:XiaoMi/soar

...@@ -709,8 +709,8 @@ func init() { ...@@ -709,8 +709,8 @@ func init() {
"JOI.007": { "JOI.007": {
Item: "JOI.007", Item: "JOI.007",
Severity: "L4", Severity: "L4",
Summary: "不建议使用联表更新", Summary: "不建议使用联表删除或更新",
Content: `当需要同时更新多张表时建议使用简单 SQL,一条 SQL 只更新一张表,尽量不要将多张表的更新在同一条 SQL 中完成。`, Content: `当需要同时删除或更新多张表时建议使用简单语句,一条 SQL 只删除或更新一张表,尽量不要将多张表的操作在同一条语句。`,
Case: "UPDATE users u LEFT JOIN hobby h ON u.id = h.uid SET u.name = 'pianoboy' WHERE h.hobby = 'piano';", Case: "UPDATE users u LEFT JOIN hobby h ON u.id = h.uid SET u.name = 'pianoboy' WHERE h.hobby = 'piano';",
Func: (*Query4Audit).RuleMultiDeleteUpdate, Func: (*Query4Audit).RuleMultiDeleteUpdate,
}, },
......
...@@ -702,11 +702,11 @@ select bp1.p_id, b1.d_d as l, b1.b_id from b1 join bp1 on (b1.b_id = bp1.b_id) l ...@@ -702,11 +702,11 @@ select bp1.p_id, b1.d_d as l, b1.b_id from b1 join bp1 on (b1.b_id = bp1.b_id) l
```sql ```sql
SELECT s,p,d FROM tbl WHERE p.p_id = (SELECT s.p_id FROM tbl WHERE s.c_id = 100996 AND s.q = 1 ) SELECT s,p,d FROM tbl WHERE p.p_id = (SELECT s.p_id FROM tbl WHERE s.c_id = 100996 AND s.q = 1 )
``` ```
## 不建议使用联表更新 ## 不建议使用联表删除或更新
* **Item**:JOI.007 * **Item**:JOI.007
* **Severity**:L4 * **Severity**:L4
* **Content**:当需要同时更新多张表时建议使用简单 SQL,一条 SQL 只更新一张表,尽量不要将多张表的更新在同一条 SQL 中完成 * **Content**:当需要同时删除或更新多张表时建议使用简单语句,一条 SQL 只删除或更新一张表,尽量不要将多张表的操作在同一条语句
* **Case**: * **Case**:
```sql ```sql
......
...@@ -702,11 +702,11 @@ select bp1.p_id, b1.d_d as l, b1.b_id from b1 join bp1 on (b1.b_id = bp1.b_id) l ...@@ -702,11 +702,11 @@ select bp1.p_id, b1.d_d as l, b1.b_id from b1 join bp1 on (b1.b_id = bp1.b_id) l
```sql ```sql
SELECT s,p,d FROM tbl WHERE p.p_id = (SELECT s.p_id FROM tbl WHERE s.c_id = 100996 AND s.q = 1 ) SELECT s,p,d FROM tbl WHERE p.p_id = (SELECT s.p_id FROM tbl WHERE s.c_id = 100996 AND s.q = 1 )
``` ```
## 不建议使用联表更新 ## 不建议使用联表删除或更新
* **Item**:JOI.007 * **Item**:JOI.007
* **Severity**:L4 * **Severity**:L4
* **Content**:当需要同时更新多张表时建议使用简单 SQL,一条 SQL 只更新一张表,尽量不要将多张表的更新在同一条 SQL 中完成 * **Content**:当需要同时删除或更新多张表时建议使用简单语句,一条 SQL 只删除或更新一张表,尽量不要将多张表的操作在同一条语句
* **Case**: * **Case**:
```sql ```sql
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册