天极Yesky
  • 笔记本电脑
    笔记本
  • 台式电脑
    台式机
  • 手机
    手机
  • 电脑硬件DIY
    DIY硬件
  • CPU
    主板
    音箱
  • 硬盘
    显卡
    键鼠
  • 内存光驱
    显示器
    机箱电源

  • 数码相机DC
    数码相机
  • MP3播放器
    MP3/MP4
  • 数码摄像机DV
    摄像机
  • 电脑外设
    外设
  • 网络
    网络
  • 服务器
    服务器
  • 数字家庭
    数字家庭
  • 群乐
    群乐
  • 产品报价 行情 商家 新闻 评测 | 软件 设计 网页 开发 安全 论坛 E时代 游戏 图片 壁纸 下载 网摘 博客 索尼专区 Vista 科技奥运
    天极网
    添加并不存在于公司图表里的公司雇员
    作者: Mike Hillyer
    出处:
    责任编辑: 丁一凡
    [ 2004-10-20 10:13 ]


      我有称为“雇员”和“公司”的两个图表。公司图表有一个称为“公司名称”的主键,雇员图表有一个称为“雇员号码”的主键和“公司”的外键。我设法连接两个图表,但我遇到的问题是:当我试图将一个雇员加到并不存在于公司图表里的公司的雇员图表时,它允许我将雇员的详细信息加到雇员图表里。

      如果公司名称并不存在于公司图表里,这应当不能发生。它不应当允许雇员的详细信息输入到雇员图表里。如果你能给予我正确的指导和帮助的话,我将非常感谢。

    发表于04年10月7日

      听起来你是在使用不同于InnoDB的图表处理器。CREATE TABLE语句将生成一个MyISAM类型图表。MyISAM是一个非常好的,具有良好性能和出色功能的图表处理器。但它不支持外键。为了执行外键的引用完整性, 你需要改变你的图表类型为InnoDB图表类型。这可以通过在CREATE TABLE的结尾指定TYPE=InnoDB来实现。

    CREATE TABLE test (
    id INT UNSIGNED NOT NULL PRIMARY KEY
    ) TYPE = InnoDB;

      你可以在图表定义之后看到TYPE语句,完整的CREATE TABLE 语法可以在http://dev.mysql.com/doc/mysql/en/CREATE_TABLE.html找到。

      关于不同的图表处理器的更多信息可以在http://dev.mysql.com/doc/mysql/en/Table_types.html处找到。请注意在最新的版本里TYPE已经被HANDLER所替代, 因为 HANDLER = InnoDB,但TYPE关键字还保持有效。

    要了解更多关于MySQL中外键处理的信息,请访问:http://dev.mysql.com/doc/mysql/en/ANSI_diff_Foreign_Keys.html,要了解InnoDB的详细信息,请访问:http://dev.mysql.com/doc/mysql/en/InnoDB.html

    笔名:
    请您注意:

     遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

     天极网拥有管理笔名和留言的一切权利。
    相关内容