elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [DUDA]Transformar Sintaxis Oracle SQL a MySQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA]Transformar Sintaxis Oracle SQL a MySQL  (Leído 2,857 veces)
blackyer94

Desconectado Desconectado

Mensajes: 4


Ver Perfil
[DUDA]Transformar Sintaxis Oracle SQL a MySQL
« en: 14 Abril 2015, 18:00 pm »

Hola gente!
Tengo un problema un pelin serio.
Resulta que yo hice un web para un gimnasio para una asignatura de mi carrera (ingeniería informática de software). Es una web echa en HTML+CSS, PHP y para la base de datos, nos obligaron a usar Oracle Database XE 11g. La sintaxis que utilice fue la de Oracle SQL.
Me salio bastante bien, y ahora quiero subirlo a internet.
Tras llevarme el verdadero palo de que en los hosting se usa siempre MySQL y nunca Oracle Database, me he dispuesto a meter el script SQL en phpMyAdmin y no va bien.
Todo son errores de sintaxis y demas. Al parecer no se pueden usar secuencias en MySQL...

Me gustaría que me ayudaran a migrar el codigo SQL de las tablas y secuencias (e inserts) a la sintaxis que admite MySQL.


Un saludo, y gracias por su tiempo

Os dejo aqui el codigo SQL.

**Las secuencias no puedo eliminarlas, dado que en la web las uso para crear IDs para meterlas en las tablas.


Citar
DROP TABLE Administrador;
DROP TABLE Empleado;
DROP TABLE EntrenamientosEjercicios;
DROP TABLE Entrenamientos;
DROP TABLE ActividadEspecifica;
DROP TABLE Actividad;
DROP TABLE LineaFactura;
DROP TABLE Facturas;
DROP TABLE Carrito;
DROP TABLE Productos;
DROP TABLE Cliente;
DROP TABLE Persona;

CREATE TABLE administrador (
usuario VARCHAR2(20) NOT NULL ,
pass VARCHAR2(32) NOT NULL ,
CONSTRAINT administrador_fk PRIMARY KEY (usuario)
);
/

CREATE TABLE Persona (
Nombre VARCHAR2 (50) NOT NULL,
Apellidos VARCHAR2(50) NOT NULL,
DNI CHAR(9) NOT NULL ,
Email VARCHAR2 (50) NOT NULL,
Sexo VARCHAR2(1) NOT NULL ,
Telefono VARCHAR2 (9) NOT NULL,
FechaNacimiento DATE NOT NULL,
Direccion VARCHAR2(255) NOT NULL,
pass VARCHAR2(32) NOT NULL ,
Baja INT NOT NULL,
CONSTRAINT PERSONA_PK PRIMARY KEY (DNI),
CHECK (Sexo IN ('H' , 'M'))
);
/

CREATE TABLE Cliente (
IDCliente INT NOT NULL ,
DNIPersona CHAR(9) NOT NULL ,
CONSTRAINT Cliente_PK PRIMARY KEY (IDCliente),
CONSTRAINT CLIENTE_FK FOREIGN KEY (DNIPersona) REFERENCES Persona
);
/

CREATE TABLE Empleado (
IDEmpleado INT NOT NULL,
DNIPersona CHAR(9) NOT NULL,
CONSTRAINT EMPLEADO_PK PRIMARY KEY (IDEmpleado),
CONSTRAINT EMPLEADO_FK FOREIGN KEY (DNIPersona) REFERENCES Persona(DNI)
);

CREATE TABLE Actividad (
IDActividad INT NOT NULL,
Nombre VARCHAR2 (50) NOT NULL,
CONSTRAINT ACTIVIDAD_PK PRIMARY KEY (IDActividad)
);
/
CREATE TABLE ActividadEspecifica (
IDActividadEspecifica INT NOT NULL,
IDActividad INT NOT NULL,
Nombre VARCHAR2(50) NOT NULL,
Descripcion VARCHAR2(255),
CONSTRAINT ACtividadEspecifica_FK FOREIGN KEY (IDActividad) REFERENCES Actividad(IDActividad),
PRIMARY KEY(IDActividadEspecifica)
);
/
CREATE TABLE Entrenamientos (
IDEntrenamiento INT NOT NULL,
IDCliente INT NOT NULL,
FechaInicio DATE NOT NULL,
FechaFin DATE NOT NULL,
IDActividad INT NOT NULL,
Descripcion VARCHAR2(255),
CONSTRAINT Entrenamientos_FK FOREIGN KEY (IDCliente) REFERENCES Cliente(IDCliente),
CONSTRAINT EntrenamientosActividades_FK FOREIGN KEY (IDActividad) REFERENCES Actividad(IDActividad),
PRIMARY KEY(IDEntrenamiento)
);
/
CREATE TABLE EntrenamientosEjercicios (
IDEntrenamiento INT NOT NULL,
IDActividadEspecifica INT NOT NULL,
CONSTRAINT EntrenamientosEjercicios_FK FOREIGN KEY (IDEntrenamiento) REFERENCES Entrenamientos(IDEntrenamiento),
CONSTRAINT EntrenamientosAEspecificas_FK FOREIGN KEY (IDActividadEspecifica) REFERENCES ActividadEspecifica(IDActividadEspecifica),
PRIMARY KEY(IDEntrenamiento,IDActividadEspecifica)
);
/

CREATE TABLE Productos (
IDProducto INT NOT NULL,
Nombre  VARCHAR2(255) NOT NULL,
Descripcion  VARCHAR2(255) NOT NULL,
Precio NUMBER(6,2) NOT NULL,
Stock INT NOT NULL,
Foto VARCHAR2(255),
PRIMARY KEY(IDProducto)
);
/

CREATE TABLE Carrito (
IDCarrito INT NOT NULL,
IDProducto INT NOT NULL,
IDCliente INT NOT NULL,
Unidades INT NOT NULL,
PRIMARY KEY(IDCarrito),
CONSTRAINT Carrito_FK FOREIGN KEY (IDCliente) REFERENCES Cliente(IDCliente),
CONSTRAINT CarritoProducto_FK FOREIGN KEY (IDProducto) REFERENCES Productos(IDProducto)
);
/

CREATE TABLE Facturas (
IDFactura INT NOT NULL,
IDCliente INT NOT NULL,
PrecioTotal NUMBER(6,2) NOT NULL,
PRIMARY KEY(IDFactura),
CONSTRAINT ClientesFacturas_FK FOREIGN KEY (IDCliente) REFERENCES Cliente(IDCliente)
);
/

CREATE TABLE LineaFactura (
IDLineaFactura INT NOT NULL,
IDProducto INT NOT NULL,
IDCliente INT NOT NULL,
IDFactura INT NOT NULL,
PrecioCompra NUMBER(6,2) NOT NULL,
Unidades INT NOT NULL,
PRIMARY KEY(IDLineaFactura),
CONSTRAINT ClientesLF_FK FOREIGN KEY (IDCliente) REFERENCES Cliente(IDCliente),
CONSTRAINT LFacturaProducto_FK FOREIGN KEY (IDProducto) REFERENCES Productos(IDProducto),
CONSTRAINT Facturas_FK FOREIGN KEY (IDFactura) REFERENCES Facturas(IDFactura)
);
/


DROP SEQUENCE sec_entrenamientos;
CREATE SEQUENCE sec_entrenamientos MINVALUE 1 INCREMENT BY 1 START WITH 1;
/
DROP SEQUENCE sec_actividadesespecifica;
CREATE SEQUENCE sec_actividadesespecifica MINVALUE 1 INCREMENT BY 1 START WITH 1;
/
DROP SEQUENCE sec_clientes;
CREATE SEQUENCE sec_clientes MINVALUE 1 INCREMENT BY 1 START WITH 1;
/
DROP SEQUENCE sec_empleados;
CREATE SEQUENCE sec_empleados MINVALUE 1 INCREMENT BY 1 START WITH 1;
/
DROP SEQUENCE sec_facturas;
CREATE SEQUENCE sec_facturas MINVALUE 1 INCREMENT BY 1 START WITH 1;
/
DROP SEQUENCE sec_lineafacturas;
CREATE SEQUENCE sec_lineafacturas MINVALUE 1 INCREMENT BY 1 START WITH 1;
/
DROP SEQUENCE sec_actividades;
CREATE SEQUENCE sec_actividades MINVALUE 1 INCREMENT BY 1 START WITH 1;
DROP SEQUENCE sec_carrito;
CREATE SEQUENCE sec_carrito MINVALUE 1 INCREMENT BY 1 START WITH 1;
DROP SEQUENCE sec_productos;
CREATE SEQUENCE sec_productos MINVALUE 1 INCREMENT BY 1 START WITH 1;
/

commit;



En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: [DUDA]Transformar Sintaxis Oracle SQL a MySQL
« Respuesta #1 en: 14 Abril 2015, 23:39 pm »

Pues a simple vista la sintaxis tiene gran parecido. De igual manera preguntad puntualmente de los problemas que tengas.

Los delimitadores debe de sobrar, a menos de que este sea declarado (lo digo por el /), en tal caso sería:
Código
  1. DELIMITER //

Elimina el commit final

Pero esto sólo es para store procedures, para los scripts normalmente con el ; debe de funcionar correctamente


« Última modificación: 14 Abril 2015, 23:42 pm por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
fran800m

Desconectado Desconectado

Mensajes: 204



Ver Perfil
Re: [DUDA]Transformar Sintaxis Oracle SQL a MySQL
« Respuesta #2 en: 16 Abril 2015, 21:09 pm »

Las secuencias puedes sustituirlas por campos autoincrementales. Si me dices la pega que le ves le damos una pensada.

Un saludo,
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
john the ripper me detecta hash de mysql como oracle??
Hacking
nacho87 2 4,484 Último mensaje 7 Noviembre 2012, 20:53 pm
por opportunity
Oracle cuadruplica el precio de las licencias de MySQL
Noticias
Novlucker 1 2,765 Último mensaje 8 Noviembre 2010, 11:38 am
por Artikbot
similitud entre oracle y mysql
Bases de Datos
jhonatanAsm 1 2,608 Último mensaje 4 Agosto 2012, 02:18 am
por jhonatanAsm
Eleccion entre Mysql y Oracle
Java
Black Lotus 3 2,506 Último mensaje 13 Febrero 2014, 04:30 am
por Black Lotus
[DUDA] Problema al transformar Cº a Fº en un programa.
Java
fjlopezc17 5 2,723 Último mensaje 11 Agosto 2016, 18:18 pm
por fjlopezc17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines