【问题标题】:Converting oracle sql script to mysql将 oracle sql 脚本转换为 mysql
【发布时间】:2017-12-15 18:57:38
【问题描述】:

您好,我希望将我的部分 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 - 插入数据库时​​主键条目重复。图片链接如下:

https://i.stack.imgur.com/VfVW9.png

【问题讨论】:

  • 如果您将number 更改为numeric 并将varchar2 更改为varchar 它应该可以工作:sqlfiddle.com/#!9/fb695e
  • 向表中插入数据时应该会出现该错误。创建表时不应该发生。
  • 是的,当我插入记录时确实会显示错误:insert into inspection values(1003,201,'12-JUN-2012','Cracked sink in kitchen requires repair'); MySQL said: Documentation #1062 - Duplicate entry '1003-201-0000-00-00' for key 'PRIMARY
  • 我需要的插入:insert into inspection values(1001,201,'12-JUN-2010','No problems'); insert into inspection values(1002,201,'13-JUN-2010','Crockery needs to be replaced'); insert into inspection values(1003,201,'12-JUN-2009','Broken window pane requires urgent repair'); insert into inspection values(1006,203,'21-MAR-2010','No problems'); insert into inspection values(1007,203,'01-DEC-2010','Sofa trim pulled apart by cat. Repair needed'); insert into inspection values(1003,201,'12-JUN-2012','Cracked sink in kitchen requires repair');

标签: mysql oracle phpmyadmin


【解决方案1】:

我想你会发现插入的 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')
                    ^^^^^^^^^^^^

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 2013-08-10
    • 2019-09-11
    • 2015-03-19
    • 2010-12-18
    • 2016-04-14
    • 2011-12-10
    • 2012-07-21
    • 2018-09-28
    相关资源
    最近更新 更多