• MySQL删除外键约束问题


    当我们在一个表中添加字段约束的时候:

    ALTER TABLE product ADD CONSTRAINT product_fk FOREIGN KEY(category_id) REFERENCES category(id);

    会认为我的外键约束名称为product_fk, 然后当我们想删除时:

    ALTER TABLE product DROP FOREIGN KEY product_fk;

    会出现以下的错误:

    <e>Query: alter table product drop foreign key product_fk
    
    Error Code: 1025
    Error on rename of '.web_day09product' to '.web_day09#sql2-2330-1' (errno: 152)

    这是因为字段的外键约束名并不是product_fk 。

    我们在数据库中执行一下命令:

    SHOW CREATE TABLE product

    控制台会显示:

    Table    Create Table
    product    CREATE TABLE `product` (
      `pid` varchar(32) NOT NULL,
      `pname` varchar(40) DEFAULT NULL,
      `price` double DEFAULT NULL,
      `category_id` varchar(32) DEFAULT NULL,
      PRIMARY KEY (`pid`),
      KEY `category_id` (`category_id`),
      CONSTRAINT `product_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`cid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    从建表语句中我们发现外键约束名称是:

    product_ibfk_1

    然后我们再执行外键删除操作:

    <n>Query: alter table product drop foreign key product_ibfk_1
    
    0 row(s) affected

    删除成功。

    愿你眼中有光芒,活成你想要的模样
  • 相关阅读:
    ADO.net方法
    单例模式(Singleton)的6种实现
    小菜学习设计模式(五)—控制反转(Ioc)
    mysql及linux发行版下载源
    Linux应用总结(1):自动删除n天前日志
    linux挂载mount参数优化
    SQL Server Mysql primary key可更新性分析
    SQL Server 排名函数实现
    MySQL select
    MySQL 数据显示宽度
  • 原文地址:https://www.cnblogs.com/SmallStrange/p/13993031.html
Copyright © 2020-2023  润新知