从sql开发人员转移到mysql

时间:2018-12-06 04:00:30

标签: mysql oracle-sqldeveloper

所以我在Sql开发人员的数据库中有一些表,我仍然有来自这些表的查询。如果我尝试将其放在mysql中,则会出现一些错误,因此我想知道有什么不同,为什么它不能像我需要更改的那样工作。

以下是我在sql中创建的一些表,现在我正尝试在mysql中创建这些表:

create table EspecialidadesMedicas(
IdEspecialidad number(4) constraint pk_EspecialidadesMedicas primary key,
DescripcionEspecialidad varchar2(30));

create table Doctores(
IdDoctor number(5) constraint pk_Doctores primary key,
NombreDoctor varchar2(30),
Salario number(12,2),
Especialidad constraint fk1_Doctores references EspecialidadesMedicas);

create table Consultorios(
IdConsultorio number(4) constraint pk_Consultorios primary key,
Tamano varchar2(30),
Construido date);

2 个答案:

答案 0 :(得分:1)

您的第一个语句将变为:

create table EspecialidadesMedicas(
  IdEspecialidad int primary key,
  DescripcionEspecialidad varchar(30)
);

您的第二个陈述很可能变成这样:

create table Doctores(
    IdDoctor int primary key,
    NombreDoctor varchar(30),
    Salario decimal(12,2),
    Especialidad int,
    constraint fk1_Doctores foreign key (Especialidad) references EspecialidadesMedicas (IdEspecialidad)
);

您的第三个语句将变为:

create table Consultorios(
    IdConsultorio int primary key,
    Tamano varchar(30),
    Construido date
);

在MySQL中尝试一下。

答案 1 :(得分:0)

您的第一个表在MySQL中将如下所示:

CREATE TABLE `de`.`EspecialidadesMedicas` (
  `IdEspecialidad` INT NOT NULL AUTO_INCREMENT,
  `DescripcionEspecialidad` VARCHAR(30) NULL,
  PRIMARY KEY (`IdEspecialidad`));

如您所见,在语法,数据类型和功能方面存在相当多的差异,此处无法全部涵盖。 (例如,自动增加) 最简单的方法是使用类似MySQL Workbench的工具。它允许您使用GUI创建表并显示执行的SQL。这样您就可以看到差异。

我还建议阅读一些此类迁移教程:

https://blog.toadworld.com/2017/03/17/migrating-from-oracle-to-mysql

http://www.sqlines.com/oracle-to-mysql