Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 删除级联时删除_Sql_Constraints_Cascade_Alter - Fatal编程技术网

Sql 删除级联时删除

Sql 删除级联时删除,sql,constraints,cascade,alter,Sql,Constraints,Cascade,Alter,我有一张儿童桌。在创建表时,使用ON DELETE CASCADE的和外键 子表或父表中都没有记录 我希望主键和外键保持原样,但只希望从子表中删除级联选项 无论如何,我可以改变那个子表 多谢各位 ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } 默认设置为无操作 因此,请尝试将子表更改回默认值。(Oracle)您只能更改约束的状态。删除时不是状态。所以您需要删除约束并重新创建它 drop table t1 cascade co

我有一张儿童桌。在创建表时,使用ON DELETE CASCADE的和外键

子表或父表中都没有记录

我希望主键和外键保持原样,但只希望从子表中删除级联选项

无论如何,我可以改变那个子表

多谢各位

ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
默认设置为无操作

因此,请尝试将子表更改回默认值。

(Oracle)您只能更改约束的状态。删除时不是状态。所以您需要删除约束并重新创建它

drop table t1 cascade constraints;
create table t1 (id number unique, rid number constraint t1_fk references t1(id) on delete cascade);

alter table t1 drop constraint t1_fk;
alter table t1 add constraint t1_fk foreign key(rid) references t1(id);
如果您使用的是Oracle,则有不同的字典视图可以帮助您正确地重新创建约束

  • 将数据库导出为
    .sql
    文件
  • 然后按ctrl+H将删除级联上的所有
    替换为“”
  • 然后从数据库中删除这些表,并使用新文件实例化一个新的表,而不使用DELETE CASCADE上的
表格:

SHOW CREATE TABLE table;
  • 首先删除外键
  • 更改表departmentos_direcciones_pedidos DROP CONSTRAINT departmentos_direcciones_pedidos_ibfk_1;
  • 其次,创建正确的外键
  • 更改表departmentos_direcciones_pedidos添加外键(id_departmento)引用departmentos(id);fid编号(5)参考删除级联上的父级(pid);所以我需要发出alter table child modify fid on delete set default。。。。。正确的?
    CREATE TABLE `table` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `id_departamento` int(11) unsigned DEFAULT NULL,
      `name` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL,
      PRIMARY KEY (`id`),
      KEY `id_departamento` (`id_departamento`),
      CONSTRAINT `departamentos_direcciones_pedidos_ibfk_1` FOREIGN KEY (`id_departamento`) REFERENCES `departamentos` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    
    ALTER TABLE departamentos_direcciones_pedidos DROP CONSTRAINT departamentos_direcciones_pedidos_ibfk_1; ALTER TABLE departamentos_direcciones_pedidos ADD FOREIGN KEY (id_departamento) REFERENCES departamentos(id);