2017-11-12 1 views
0

Wie ist es möglich, die folgende Oracle SQL auf eine Tabelle erstellen zu konvertieren mysqlConvert Tabelle von Oracle SQL zu MySQL Query Tabelle

ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY' NLS_DATE_LANGUAGE='english'; select sysdate from dual; 
    CREATE TABLE dept ( 
    value1 DATE not null, 
    value2 NUMBER(21,6) not null, 
    value3 NUMBER(21,6), 
    value4 references tem(temno)); 

Beispiel von Einsatzdaten: Die

insert into emp(value1,value2,value3,value4) values('02-APR-1989',26850,20,30); 
+0

Sie wissen, dass Ihre Einfügedaten für die Tabelle 'emp' ->" Employee "sind. Und Sie fragen nach 'dept' ->" Derpartment ". Und sein klassisches Schema Beispiel aus Oracle –

+0

@Take_Care_ ja vielen Dank habe ich es geändert. – user8831872

+1

So wie ich sehe, müssen Sie nur 3 Anweisungen ändern 'Wert2 INT nicht null, Wert3 INT, FREMDSCHLÜSSEL (Wert4) REFERENZEN tem (temno)' –

Antwort

1

Erste ersetzen Oracle NUMBER Datentyp mit MySql Datentyp.

Ihre Tabellendefinition verweist auf eine andere Tabelle tem hier genannt:

value4 references tem(temno) 

dies so Inline-Fremdschlüssel

Sie nicht Tabelle dept wenn Tabelle tem zuvor erstellten erstellen wurde nicht genannt wird, so dass die ganze Skript in Oracle muss so aussehen:

CREATE TABLE tem(
    temno number primary key 
); 

INSERT INTO tem VALUES (1); 

CREATE TABLE dept ( 
    value1 DATE not null, 
    value2 number(21,6) not null, 
    value3 number(21,6), 
    value4 references tem(temno) 
); 

INSERT INTO dept VALUES(date '2017-01-22', 22.0, 13.5, 1); 

Sie müssen auch t erstellen tem in MySql Lage, bevor Sie die Tabelle dept


MySql unterstützt keine Inline-Fremdschlüssel-Constraints zu schaffen, nur aus der Reihe Fremdschlüssel Arbeit beschränkt, so dass die Tabellen Definition in MySql muss wie folgt aussehen:

CREATE TABLE tem(
    temno decimal primary key 
); 

INSERT INTO tem VALUES (1); 

CREATE TABLE dept ( 
    value1 DATE not null, 
    value2 decimal(21,6) not null, 
    value3 decimal(21,6), 
    value4 decimal, 
    constraint foreign key (value4) references tem(temno) 
); 

INSERT INTO dept VALUES(date '2017-01-22', 22.0, 13.5, 1); 

Live-Demo: http://sqlfiddle.com/#!9/173b2/1

Hinweis: ein Datentyp value4 decimal das gleiche wie ein dataypepe von temno decimal in Tabelle tem, und auchsein mußSpalte muss ein Primärschlüssel sein, sonst erhalten Sie einen Fehler.