2011-03-31 43 views
0

外鍵約束消失的方式有哪些?我有大約20個數據庫,其中一些限制已經消失。外鍵約束消失的原因

mysql> show create table phppos_sales_items; 
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table    | Create Table                                                                                                                                        | 
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| phppos_sales_items | CREATE TABLE `phppos_sales_items` (
    `sale_id` int(10) NOT NULL default '0', 
    `item_id` int(10) NOT NULL default '0', 
    `description` varchar(30) default NULL, 
    `serialnumber` varchar(30) default NULL, 
    `line` int(3) NOT NULL default '0', 
    `quantity_purchased` double(15,2) NOT NULL default '0.00', 
    `item_cost_price` decimal(15,2) NOT NULL, 
    `item_unit_price` double(15,2) NOT NULL, 
    `discount_percent` int(11) NOT NULL default '0', 
    PRIMARY KEY (`sale_id`,`item_id`,`line`), 
    KEY `item_id` (`item_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+--------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

mysql> show create table phppos_sales_items_taxes; 
+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table     | Create Table                                                                                 | 
+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| phppos_sales_items_taxes | CREATE TABLE `phppos_sales_items_taxes` (
    `sale_id` int(10) NOT NULL, 
    `item_id` int(10) NOT NULL, 
    `line` int(3) NOT NULL default '0', 
    `name` varchar(255) NOT NULL, 
    `percent` double(15,2) NOT NULL, 
    PRIMARY KEY (`sale_id`,`item_id`,`line`,`name`,`percent`), 
    KEY `item_id` (`item_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 
+0

你可以發佈'show create table '的輸出嗎?'在約束消失的某些表上? – vpit3833 2011-03-31 01:17:05

+0

@ vpit3833我已更新我的示例以顯示其中的幾個。 – 2011-03-31 01:39:04

回答

0

This可能是一個原因。詳細描述在here,雖然很古老。創建表之後執行alter table可能是一個原因。你在做類似的事嗎?