发新话题
打印

一个定单管理的外键约束问题

本主题由 admin 于 2007-11-4 12:02 移动

一个定单管理的外键约束问题

表的结构如下:
CODE:
CREATE TABLE `company_customer` (
`customerid` int(10) unsigned NOT NULL auto_increment,
`CompanyName` varchar(255) NOT NULL default '',
`ShippingAddress` varchar(255) NOT NULL default '',
`Account` int(10) NOT NULL default '0',
`P.O.` int(10) NOT NULL default '0',
`City` varchar(255) NOT NULL default '',
`State` varchar(255) NOT NULL default '',
`Zip` varchar(255) NOT NULL default '',
`Phone` varbinary(255) NOT NULL default '',
`BillingAddress` varchar(255) NOT NULL default '',
`BillingFax` varchar(255) NOT NULL default '',
`BillingCity` varchar(255) NOT NULL default '',
`BillingState` varchar(255) NOT NULL default '',
`BillingZip` varchar(255) NOT NULL default '',
`BillingPhone` varchar(255) NOT NULL default '',
`Confirmation` varchar(255) NOT NULL default '',
`ShippingHandling` varchar(255) NOT NULL default '',
`Total` int(5) NOT NULL default '0',
`SpecialInstructions` text NOT NULL,
`PurchasedBy` varchar(255) NOT NULL default '',
`Date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`customerid`),
KEY `CompanyName` (`CompanyName`)
) ENGINE=InnoDB COMMENT='产品订单表' ;

CREATE TABLE `company_orderitem` (
`orderid` int(10) unsigned NOT NULL auto_increment,
`Catalog` varchar(255) NOT NULL default '',
`Description` text NOT NULL,
`UnitSize` float NOT NULL default '0',
`Quantity` int(8) NOT NULL default '0',
`UnitPrice` float NOT NULL default '0',
`Total` varchar(150) NOT NULL default '0',
PRIMARY KEY (`orderid`)
) ENGINE=InnoDB ;

CREATE TABLE `company_order` (
`orderid` int(10) unsigned NOT NULL default '0',
`customerid` int(10) unsigned NOT NULL default '0',
`datetime` datetime NOT NULL default '0000-00-00 00:00:00',
primary key(orderid,customerid),
INDEX `orderid` (`orderid`),
FOREIGN KEY (orderid)
REFERENCES company_orderitem(orderid)
ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX `customerid` (`customerid`),
FOREIGN KEY (customerid)
REFERENCES company_customer(customerid)
ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB;

简单的说就是在插入company_customer表和company_orderitem表时候,也同时插入到company_order表中,其中的company_customer.customerid=company_order.customerid, company_orderitem.orderid=company_order.orderid
我想使用mysql的外键约束来实现这个功能,在写程序时候只插入company_customer和company_orderitem这两个表,没有写插入company_order表的程序,按照mysql手册上的介绍,mysql应该是可以完成这样的操作的,但是我运行了程序后,company_order表中没有数据,请问高手们如何解决?

TOP

找工作了找工作~~~~

TOP

发新话题