如何更改 table 中的现有主键?
How do I alter an existing primary key in a table?
我有一个 table,其中已经定义了一个主键。我想向其中添加一列,该列也必须是主键的一部分。怎么做到的?
如果 PK_MY_TABLE
是现有主键的约束名称:
ALTER TABLE MY_TABLE DROP CONSTRAINT PK_MY_TABLE;
COMMIT;
alter table MY_TABLE
add constraint PK_MY_TABLE
primary key (ID,ID_1);
或
ALTER TABLE MY_TABLE DROP CONSTRAINT PK_MY_TABLE, ADD CONSTRAINT PK_MY_TABLE PRIMARY KEY (ID,ID_1);
在单个查询中执行此操作的优雅方法
在MYSQL
ALTER TABLE TABLE_NAME DROP PRIMARY KEY, ADD PRIMARY KEY(ID,ID_1);
对于火鸟:-
ALTER TABLE TABLE_NAME DROP CONSTRAINT TEST_CONST, ADD PRIMARY KEY (ID,ID_1)
你不能做这一步,用 firebird
你必须做,引用上面的例子
改变TABLEMY_TABLE删除约束PK_MY_TABLE;
更改 table 添加 id_1;
提交;
改变tableMY_TABLE
添加约束 PK_MY_TABLE
主键(ID,ID_1);
提交;
强烈建议您在单独使用数据库时执行此操作
您可以使用执行块来完成:
EXECUTE BLOCK
AS
DECLARE NOMBRE VARCHAR(100);
BEGIN
FOR
SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS WHERE RDB$RELATION_NAME = 'MY_TABLE' AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
INTO NOMBRE
DO
IF (NOMBRE IS NOT NULL) THEN
BEGIN
EXECUTE STATEMENT 'ALTER TABLE MY_TABLE DROP CONSTRAINT ' || NOMBRE;
END
SUSPEND;
END
我有一个 table,其中已经定义了一个主键。我想向其中添加一列,该列也必须是主键的一部分。怎么做到的?
如果 PK_MY_TABLE
是现有主键的约束名称:
ALTER TABLE MY_TABLE DROP CONSTRAINT PK_MY_TABLE;
COMMIT;
alter table MY_TABLE
add constraint PK_MY_TABLE
primary key (ID,ID_1);
或
ALTER TABLE MY_TABLE DROP CONSTRAINT PK_MY_TABLE, ADD CONSTRAINT PK_MY_TABLE PRIMARY KEY (ID,ID_1);
在单个查询中执行此操作的优雅方法
在MYSQL
ALTER TABLE TABLE_NAME DROP PRIMARY KEY, ADD PRIMARY KEY(ID,ID_1);
对于火鸟:-
ALTER TABLE TABLE_NAME DROP CONSTRAINT TEST_CONST, ADD PRIMARY KEY (ID,ID_1)
你不能做这一步,用 firebird
你必须做,引用上面的例子
改变TABLEMY_TABLE删除约束PK_MY_TABLE;
更改 table 添加 id_1;
提交;
改变tableMY_TABLE 添加约束 PK_MY_TABLE 主键(ID,ID_1);
提交;
强烈建议您在单独使用数据库时执行此操作
您可以使用执行块来完成:
EXECUTE BLOCK
AS
DECLARE NOMBRE VARCHAR(100);
BEGIN
FOR
SELECT RDB$CONSTRAINT_NAME FROM RDB$RELATION_CONSTRAINTS WHERE RDB$RELATION_NAME = 'MY_TABLE' AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
INTO NOMBRE
DO
IF (NOMBRE IS NOT NULL) THEN
BEGIN
EXECUTE STATEMENT 'ALTER TABLE MY_TABLE DROP CONSTRAINT ' || NOMBRE;
END
SUSPEND;
END