首批通过分布式安全可靠测评,为关键业务系统打造
DDL 语句添加外键错误,错误代码 1235
更新时间:2024-01-22 01:56
本文介绍执行以下 SQL 语句为表添加外键报 1235 错误的原因以及解决方法。
适用版本
OceanBase 数据库 V2.2.50 前的版本。
问题现象
执行以下 SQL 语句为表添加外键报错,错误信息如下。
obclient> ALTER TABLE test_table ADD CONSTRAINT AFK_CUSTOM_VALUES FOREIGN KEY (KEY) REFERENCE (reference_value)
[0A000] [1235] alter table add forgein key with normal user not supported
日志信息如下。
WARN resolve_foreign_key_options (ob_alter_table_resolver.cpp:2162) [90438][1844][YB420BA64E88-0005AAEAF0425A7F] [lt=16] [dc=0] alter table add foreign key with normal user not supported
可能原因
OceanBase 数据库对外键进行了限制,普通用户不能使用 ALTER TABLE 语句为表添加外键。
解决方式
重新创建表,在 CREATE TABLE 语句中添加外键可以规避该问题。
obclient> CREATE OR REPLACE TABLE test_table (oid INTEGER NOT NULL, name VARCHAR(20), pid INTEGER, PRIMARY KEY (oid), FOREIGN KEY REFERENCES test(pid);)