mysql - 尝试更改我的数据库中的字段名称并出现错误
问题描述
我有一个论坛数据库,其中包含两个表、帖子 + 主题,我尝试将字段名称从 更改topic_id
为photo_id
,但我得到了
“字段列表中的未知 topic_id
这是我的第二张桌子
我是否因为第二个表中出现外键而收到此错误?
为了记录,我也在使用代码
将我的 topic_id 更改为 photo_id 意味着我必须在每个页面上将所有代码更改为 topic_id 到 photo_id 对吗?
解决方案
如果您尝试更改 id 列,则必须首先更改主列表,然后再更改另一个表。
alter table database.yourMainTable
change column topic_id photo_id int(11) not null auto_increment
然后你必须删除你的第二个表的约束外键重要的是这样做并更改列名。
ALTER TABLE database.yoursecondtable
DROP FOREIGN KEY yourSecondTable, -- if you don't know you can check it with you phpadmin.
CHANGE COLUMN topic_id photo_id int(11) not null auto_increment --the type of both columns have to be same
最后添加约束和对第一个表的引用;)
ALTER TABLE database.yoursecondtable
ADD CONSTRAINT fk_yourconstraintforeignkey
FOREIGN KEY (newid) REFERENCES gimnasio.planes(idnew)
ON DELETE CASCADE
ON UPDATE CASCADE
推荐阅读
- c - 为 C/C++ 安装 openSSL MacOs X gcc-9 时遇到问题
- curl - Curl 拒绝访问
- reactjs - getDerivedStateFromProps 中的状态更新是否与渲染同步?
- reactjs - 使用 Lerna 为 Create React App 开发模块时编译时间很慢
- javascript - 如何从来自 json 的视频中生成缩略图?
- javascript - 使用 Angular8 将 NPM 包 Stockfish.js(国际象棋引擎)编译为 Web Worker 时出错
- javascript - 正则表达式:匹配字符串之外的字符串对
- java - onJoin 事件不替换 lastPlayer
- kubernetes - 如何在失败时删除 Pod 而不是重新启动它?
- python - 根据scrapy响应结果打破循环