将oracle sql脚本转换为mysql

将oracle sql脚本转换为mysql,mysql,oracle,phpmyadmin,Mysql,Oracle,Phpmyadmin,嗨,我想把我的oracle sql脚本的一部分转换成mysql脚本 我要转换的部分如下所示: create table inspection (property_no number(5) not null references prop_for_rent(property_no), staff_no number(5) not null references staff(staff_no), inspect_date date, comments varchar2(50), primary ke

嗨,我想把我的oracle sql脚本的一部分转换成mysql脚本

我要转换的部分如下所示:

create table inspection
(property_no number(5) not null references prop_for_rent(property_no),
staff_no number(5) not null references staff(staff_no),
inspect_date date,
comments varchar2(50),
primary key(property_no,staff_no,inspect_date))
我已经开始转换,只是主键有困难,插入数据库时会抛出一个错误1062-主键重复条目。图片链接如下:


我想您会发现插入的inspect_date列的值是零日期“0000-00-00”,这是因为INSERT语句“12-JUN-2010”中提供的值不是MySQL中日期值的有效格式

在MySQL中,我们可以这样做:

... VALUES(1001,201,STR_TO_DATE('12-JUN-2010','%d-%b-%Y'),'No  problems')
                    ^^^^^^^^^^^^             ^^^^^^^^^^^^
或者这个:

... VALUES(1001,201,'2010-06-12','No  problems')
                    ^^^^^^^^^^^^

如果您将number更改为numeric,将varchar2更改为varchar,则应该可以工作:当您将数据插入表中时,应该会发生该错误。创建表格时不应出现此错误。是的,插入记录时会显示错误:插入检查值103201、'2012年6月12日'、'kitchen Crick sink Required repair';MySQL说:文档1062-重复输入“1003-201-0000-00-00”,用于输入“我需要的主要插入:插入检查值100201,'2010年6月12日',“没有问题”;在检验值102201中插入“2010年6月13日”,“需要更换陶器”;在检查值103201中插入“2009年6月12日”,“损坏的窗格玻璃需要紧急维修”;在检验值106203中插入“2010年3月21日”,“无问题”;在检查值1007203、'01-DEC-2010'、'沙发装饰件被cat拉开'中插入。“需要修理”;在检查值103201、“2012年6月12日”中插入“厨房水槽开裂需要维修”;