今天碰到一件事, 刚好要把mysql的脚本转换为oracle的脚本。好不容易找到了工具(Convert Mysql to Oracle), 但转换却出人意料地其中一个表一直出问题(贴上):
CREATE TABLE `order` (
`id` int(10) unsigned NOT NULL auto_increment,
`bookid` int(10) unsigned NOT NULL default '0',
`userid` int(10) unsigned NOT NULL default '0',
`number` tinyint(3) unsigned NOT NULL default '0',
`address` varchar(128) NOT NULL default '',
`postcode` varchar(6) NOT NULL default '',
`orderdate` datetime NOT NULL default '0000-00-00 00:00:00',
`status` tinyint(3) unsigned zerofill NOT NULL default '000',
PRIMARY KEY (`id`),
KEY `FK_order_1` (`bookid`),
KEY `FK_order_2` (`userid`),
CONSTRAINT `FK_order_1` FOREIGN KEY (`bookid`) REFERENCES `bookinfo` (`id`),
CONSTRAINT `FK_order_2` FOREIGN KEY (`userid`) REFERENCES `userinfo` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
可以注意到 这个表的名字是 order, 恰恰问题就在这, order在mysql中不是保留字, 但在oracle中却是保留字,这就是造成我用工具转换频频出现问题最魁祸首。
顺便提一下,大家可以注意到mysql创建表时,表名和字段均用 ` ` 括起来。 如果你够细心的话, 可以发现,` ` 符号是左上角数字1键所对应的符号, 而default 后面的’’才是我们平
最常看到的半角状态下的单引号。
这次算是被这个折腾死了, 在此记下。
2011.08.02 00:40