PolarDB-X 1.0高度相容MySQL協議和文法,但由於分散式資料庫和單機資料庫存在較大的架構差異,存在SQL使用限制。本文將介紹相關SQL的使用限制。
SQL大類限制
- 暫不支援自訂資料類型或自訂函數。
- 暫不支援預存程序、觸發器、遊標。
- 暫不支援暫存資料表。
- 暫不支援BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…END REPEAT、WHILE…DO…END WHILE等複合陳述式。
- 暫不支流程式控制制類語句(如IF或WHILE等)。
- 暫不支援外鍵。
小文法限制
- DDL
CREATE TABLE tbl_name LIKE old_tbl_name
不支援拆分表。CREATE TABLE tbl_name SELECT statement
不支援拆分表。- 暫不支援同時RENAME多表。
- 暫不支援ALTER TABLE修改拆分欄位。
- 暫不支援跨Schema的DDL(例如
CREATE TABLE db_name.tbl_name (... )
)。
更多關於DDL的資訊,請參見DDL。
- DML
- 暫不支援SELECT INTO OUTFILE、INTO DUMPFILE和INTO var_name。
- 暫不支援STRAIGHT_JOIN和NATURAL JOIN。
- 暫不支援在 UPDATE SET 子句中使用子查詢。
- 暫不支援INSERT DELAYED文法。
- 暫不支援SQL中對於變數的引用和操作(例如
SET @c=1, @d=@c+1; SELECT @c, @d
)。 - 暫不支援在柔性事務中對廣播表進行INSERT、REPLACE、UPDATE或DELETE操作。
更多關於DML的資訊,請參見DML。
- 子查詢
- 不支援HAVING子句中的子查詢,JOIN ON條件中的子查詢。
- 等號操作行符的標量子查詢(The Subquery as Scalar Operand)不支援ROW文法。
更多關於子查詢的資訊,請參見子查詢。
- 資料庫管理
- SHOW WARNINGS文法不支援LIMIT和COUNT的組合。
- SHOW ERRORS文法不支援LIMIT和COUNT的組合。
- 運算子
暫不支援
‘:=’
賦值運算子。更多關於運算子的資訊,請參見運算子。
- 函數
更多關於函數的資訊,請參見函數簡介。
- 關鍵字
- 暫不支援MILLISECOND。
- 暫不支援MICROSECOND。