在 phpMyAdmin 中消失的外键 [英] Disappearing Foreign Keys in phpMyAdmin

查看:28
本文介绍了在 phpMyAdmin 中消失的外键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 mysql 中创建一个新表,并尝试向其中一个字段添加外键约束.

<前>创建表`在线订单`(`receiptid` varchar(10) NOT NULL 默认值 '',`delivereddate` 日期默认为 NULL,`cid` int(10) 非空,`card#` int(10) 默认为 NULL,`expire` 日期默认为 NULL,主键(`receiptid`),FOREIGN KEY (receiptid) REFERENCES 购买) 引擎=MyISAM 默认字符集=latin1;

但是,在它创建之后,我进入 phpMyAdmin 并导出表.外键约束似乎已经消失了.

<前>创建表`在线订单`(`receiptid` varchar(10) NOT NULL 默认值 '',`delivereddate` 日期默认为 NULL,`cid` int(10) 非空,`card#` int(10) 默认为 NULL,`expire` 日期默认为 NULL,主键(`receiptid`)) 引擎=MyISAM 默认字符集=latin1;

phpMyAdmin 是否去掉了外键,还是我在这里做错了什么?

解决方案

需要使用InnoDB引擎才能有外键.

参考:http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

I am creating a new table inside mysql and I am trying to add a foreign key constraint to one of the fields.

CREATE TABLE `onlineorder` (
  `receiptid` varchar(10) NOT NULL default '',
  `delivereddate` date default NULL,
  `cid` int(10) NOT NULL,
  `card#` int(10) default NULL,
  `expire` date default NULL,
  PRIMARY KEY  (`receiptid`),
  FOREIGN KEY (receiptid) REFERENCES purchase
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

However, after it creates it, I go into phpMyAdmin and export the table. and it seems like the foreign key constraint has disappeared.

CREATE TABLE `onlineorder` (
  `receiptid` varchar(10) NOT NULL default '',
  `delivereddate` date default NULL,
  `cid` int(10) NOT NULL,
  `card#` int(10) default NULL,
  `expire` date default NULL,
  PRIMARY KEY  (`receiptid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Does phpMyAdmin get rid of foreign keys or am I doing something wrong here?

解决方案

You need to use the InnoDB engine to have foreign keys.

Ref: http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

这篇关于在 phpMyAdmin 中消失的外键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆