从sql开发人员转移到mysql



所以我在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);

您的第一条语句将变成:

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中尝试一下。

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

最新更新