提交 ea0ed2c0 编写于 作者: martianzhang's avatar martianzhang
上级 69e0a1f0
......@@ -881,7 +881,7 @@ func init() {
Item: "RES.005",
Severity: "L4",
Summary: "UPDATE可能存在逻辑错误,导致数据损坏",
Content: "",
Content: "在一条UPDATE语句中,如果要更新多个字段,字段间不能使用 AND ,而应该用逗号分隔。",
Case: "update tbl set col = 1 and cl = 2 where col=3;",
Func: (*Query4Audit).RuleUpdateSetAnd,
},
......
......@@ -916,7 +916,7 @@ UPDATE film SET length = 120 WHERE title = 'abc' ORDER BY title
* **Item**:RES.005
* **Severity**:L4
* **Content**:
* **Content**:在一条UPDATE语句中,如果要更新多个字段,字段间不能使用 AND ,而应该用逗号分隔。
* **Case**:
```sql
......
......@@ -86,7 +86,7 @@ advisor.Rule{Item:"RES.001", Severity:"L4", Summary:"非确定性的GROUP BY", C
advisor.Rule{Item:"RES.002", Severity:"L4", Summary:"未使用ORDER BY的LIMIT查询", Content:"没有ORDER BY的LIMIT会导致非确定性的结果,这取决于查询执行计划。", Case:"select col1,col2 from tbl where name=xx limit 10", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.003", Severity:"L4", Summary:"UPDATE/DELETE操作使用了LIMIT条件", Content:"UPDATE/DELETE操作使用LIMIT条件和不添加WHERE条件一样危险,它可将会导致主从数据不一致或从库同步中断。", Case:"UPDATE film SET length = 120 WHERE title = 'abc' LIMIT 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.004", Severity:"L4", Summary:"UPDATE/DELETE操作指定了ORDER BY条件", Content:"UPDATE/DELETE操作不要指定ORDER BY条件。", Case:"UPDATE film SET length = 120 WHERE title = 'abc' ORDER BY title", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.005", Severity:"L4", Summary:"UPDATE可能存在逻辑错误,导致数据损坏", Content:"", Case:"update tbl set col = 1 and cl = 2 where col=3;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.005", Severity:"L4", Summary:"UPDATE可能存在逻辑错误,导致数据损坏", Content:"在一条UPDATE语句中,如果要更新多个字段,字段间不能使用 AND ,而应该用逗号分隔。", Case:"update tbl set col = 1 and cl = 2 where col=3;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.006", Severity:"L4", Summary:"永远不真的比较条件", Content:"查询条件永远非真,这将导致查询无匹配到的结果。", Case:"select * from tbl where 1 != 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.007", Severity:"L4", Summary:"永远为真的比较条件", Content:"查询条件永远为真,这将导致WHERE条件失效进行全表查询。", Case:"select * from tbl where 1 = 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
advisor.Rule{Item:"RES.008", Severity:"L2", Summary:"不建议使用LOAD DATA/SELECT ... INTO OUTFILE", Content:"SELECT INTO OUTFILE需要授予FILE权限,这通过会引入安全问题。LOAD DATA虽然可以提高数据导入速度,但同时也可能导致从库同步延迟过大。", Case:"LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}}
......
......@@ -916,7 +916,7 @@ UPDATE film SET length = 120 WHERE title = 'abc' ORDER BY title
* **Item**:RES.005
* **Severity**:L4
* **Content**:
* **Content**:在一条UPDATE语句中,如果要更新多个字段,字段间不能使用 AND ,而应该用逗号分隔。
* **Case**:
```sql
......
......@@ -1016,68 +1016,68 @@
{
"checksumSHA1": "w8FCRjH70gM6QttB9QrEh9Y1x64=",
"path": "vitess.io/vitess",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=",
"path": "vitess.io/vitess/go/hack",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "e1WJ7vCnVrlQQQlc6n/FewCDMso=",
"path": "vitess.io/vitess/go/sqltypes",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "ntFIQYkBS51G6y+FEkjFW40+HOU=",
"path": "vitess.io/vitess/go/vt/log",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "XozR8bmeSR5KTe/nlUJkpJY2HKI=",
"path": "vitess.io/vitess/go/vt/proto/query",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "OnWsUHLDKcO3spwH0jD55SvKD24=",
"path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "sBAuZ/itMR8U8qbK4yLHxkP6Cpc=",
"path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "pLWM+SPGZs3k+IhjktE/cGUlpM0=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "3ggEFYVEhMPxyhkKhRGw3x1eZ9M=",
"path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
},
{
"checksumSHA1": "oF4XzuOzwvj1iduX/lYqNSyY/HM=",
"path": "vitess.io/vitess/go/vt/vterrors",
"revision": "3dc3648303ff7f553dc3c90fbc87e0709acf08f0",
"revisionTime": "2018-11-14T14:39:22Z"
"revision": "5b3aedd79bd1488060ae5c0551b31685892c6eed",
"revisionTime": "2018-11-14T21:08:06Z"
}
],
"rootPath": "github.com/XiaoMi/soar"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册