从sql developer传输到mysql

2vuwiymt  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(420)

因此,我在sqldeveloper中的数据库中有一些表,其中仍然有来自这些表的查询。如果我试着把它放到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);
py49o6xq

py49o6xq1#

在mysql中,您的第一个表如下所示:

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

正如您所看到的,在语法、数据类型和特性上有很多不同之处,这里不能全部涵盖(e、 g.auto increment)最简单的方法是使用类似mysql workbench的工具。它允许您使用gui创建表并显示执行的sql。这样你就看到了区别。
我还建议您阅读以下迁移教程:
https://blog.toadworld.com/2017/03/17/migrating-from-oracle-to-mysql
http://www.sqlines.com/oracle-to-mysql

vm0i2vca

vm0i2vca2#

你的第一句话是:

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中试试这个。

相关问题