外键

查询一个表的主键是哪些表的外键

SELECTTABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROMINFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERETABLE_SCHEMA = 'mydbname'AND REFERENCED_TABLE_NAME = '表名';

步骤基本上有以下几步

  • 取消主键自增
  • 删除所有外键
  • 修改主键字段为varchar
  • 添加所有外键
  • 修改主键的值
  • 合并数据

修改主键值的时候要注意

如果包含id和pid这种自关联的情况下是不能直接修改值的,就需要先删除约束再添加。

比如

删除自约束

ALTER TABLE `t_director` DROP FOREIGN KEY `fk_directorpid`;
update t_director set directorid=directorid+100000000;update t_director set directorid=CONV(directorid,10,36);update t_director set directorpid=directorpid+100000000 WHERE directorpid is not null;update t_director set directorpid=CONV(directorpid,10,36) WHERE directorpid is not null;
ALTER TABLE t_director ADD CONSTRAINT fk_directorpid FOREIGN KEY (directorpid) REFERENCES t_director(directorid) ON DELETE CASCADE ON UPDATE CASCADE;

CONV(directorpid,10,36)后两个参数为原数字进制和要转换后的进制。

第一个参数只要内容是数字就算类型为varchar也可以转换。

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Andorid Dialog 示例【慢慢更新】
  3. Android(安卓)-- Android(安卓)JUint 与 Sqlite
  4. android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
  5. Android(安卓)PureMVC
  6. Ubunu下搭建android NDK环境
  7. 自定义SeekBar主题
  8. Android(安卓)SQLiteDatabase的使用
  9. android SQLite数据库基本操作示例

随机推荐

  1. Android UI开发第六篇——仿QQ的滑动Tab
  2. Android:Manifest merger failed with mu
  3. Android多媒体开发 Pro Android(安卓)Med
  4. Android画图 Bitmap
  5. 简单的Android日志文件记录类
  6. Android 应用程序只运行一个实例
  7. Android Tethering can't been open(QCOM
  8. android Bitmap学习总结
  9. CoordinatorLayout+AppBarLayout隐藏标题
  10. 【精品教程】Android应用开发入门教程(经