Mikamisa 2024-04-19 18:27 采纳率: 63.6%
浏览 3
已结题

sql输入一列数据之后自己变成只读了,而且只有两行是这样

img

img


因为添加SPJ主码后,加不了行,就后来把SPJ的主属性都去了,输得时候为什么那两行变成只读了呀😭

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-19 18:27
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在创建了一个包含四个表的关系型数据库:学生(S)、产品(P)、地点(J)以及学生购买的产品地点关系表(SPJ)。在尝试向SPJ表中添加数据时,遇到了问题,即部分行变为只读。这可能是因为在创建SPJ表时,你曾设置过主键约束,即使后来删除了这些约束,数据库可能仍然保留了一些关于这些列的索引信息,导致它们被锁定。

    要解决这个问题,你需要清除与之前主键相关的任何索引。以下是步骤:

    1. 首先,你需要撤销所有与SPJ表相关的外键约束,因为它们可能会阻止插入操作。
    2. 然后,删除与之前主键相关的索引。
    3. 最后,重新尝试插入数据。

    下面是执行这些操作的SQL代码:

    -- 撤销SPJ表的所有外键约束
    ALTER TABLE SPJ DROP CONSTRAINT FK_SPJ_S;
    ALTER TABLE SPJ DROP CONSTRAINT FK_SPJ_P;
    ALTER TABLE SPJ DROP CONSTRAINT FK_SPJ_J;
    
    -- 删除之前主键相关的索引
    DROP INDEX IF EXISTS idx_SNO ON SPJ;
    DROP INDEX IF EXISTS idx_PNO ON SPJ;
    DROP INDEX IF EXISTS idx_JNO ON SPJ;
    
    -- 再次尝试插入数据
    INSERT INTO SPJ (SNO, PNO, JNO, QTY)
    VALUES ('S1', 'P1', 'J1', NULL);
    

    如果上述步骤无法解决问题,可能是数据库管理系统(DBMS)本身的问题,或者是你使用的客户端工具设置了某些限制。在这种情况下,你应该检查所使用的数据库管理系统的文档,或者联系相应的技术支持。

    如果你在执行这些命令后仍遇到问题,或者有任何其他疑问,请随时告诉我,我会尽力提供进一步的帮助。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月19日

悬赏问题

  • ¥15 麒麟ARM机器安装chromium浏览器
  • ¥15 grbl 限位开关初始遮挡怎么处理?
  • ¥15 输入网址无法跳转,如何解决?(关键词-CONNECT)
  • ¥15 kubekey离线安装k8s及kubesphere报错
  • ¥15 avalonia开发海康SDK怎么在linux实现预览?
  • ¥15 keil5运行结果报错如下该怎么办
  • ¥300 New-API新增渠道调试
  • ¥20 zookeeper单服务器集群搭建,2888和2890端口没有监听
  • ¥15 电梯与AGV小车,modbus转HTTP ,.
  • ¥100 qt程序使用CEF组件某些网页打开失败的问题