V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
Mac
V2EX  ›  MySQL

如何方便的向一个有外键约束的表导入数据

  •  
  •   Mac · 2014-04-13 09:46:15 +08:00 · 6502 次点击
    这是一个创建于 3881 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前一直利用HEIDISQL的CSV导入到一个普通表,很顺畅

    现在由于工作需要重新做了一个有外键约束的表。导入CSV时,如果开着外键审核就报错,如果关掉,导入的数据又无法做到关联。有没有什么其他工具能确保数据关联性的啊?
    7 条回复    1970-01-01 08:00:00 +08:00
    tain198127
        1
    tain198127  
       2014-04-13 11:22:53 +08:00   ❤️ 1
    首先,你的表是有外键约束的,所以表明外键的表是必须存在的,如果你导入的CSV本身就缺少外键数据的话,那就证明你的数据是不完整的。那么现在的问题不是找什么工具,而是要找齐你的数据。
    当数据完整后,才是考虑工具的时候。
    Mac
        2
    Mac  
    OP
       2014-04-13 15:14:24 +08:00
    @tain198127 如果外键关联了a.a=b.a,那在a.a等于1已经存在的时候,我仅仅在csv里往b.a里插入数值1是做不到关联的?那csv里的纯数据文本是否就不合适用于导入有外键约束的数据了?
    wangyongbo
        3
    wangyongbo  
       2014-04-13 17:19:28 +08:00
    如果是mysql 到 mysql的话,还算用mysqldump 来导出数据吧。所有的关系都会导出的。
    dongbeta
        4
    dongbeta  
       2014-04-13 17:52:48 +08:00
    可以写程序来导入,在程序中保证外键。
    Mac
        5
    Mac  
    OP
       2014-04-13 21:52:55 +08:00
    @wangyongbo 不是备份和还原或者同步的事情。我是想利用csv快速录入数据到一个有外键约束的表。但实际操作上感觉csv的导入机制是无法用在有外键的表上的。
    skingtree
        6
    skingtree  
       2014-04-14 13:58:52 +08:00
    先把约束drop了 导入数据后再重建
    Mac
        7
    Mac  
    OP
       2014-04-28 11:11:16 +08:00
    找到问题关键了,NULL值,外键约束的字段里有默认NULL值的,而CSV里的空白导致了无法关联。犯了个极其幼稚的错误,NULL<>BLANK。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1109 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:09 · PVG 03:09 · LAX 11:09 · JFK 14:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.