2011-09-02 13 views
31

Sono uno sviluppatore di software. Ho usato mysql per anni e ora sto per avere il mio primo incontro con Oracle in un progetto.Quali sono le principali differenze tra i dialmi mysql e oracle sql?

Mi è stato appena detto che dovrei stare attento che lo sql si comporta in modo diverso in alcuni casi. Non ho idea di cosa aspettarmi. Sono principalmente alla ricerca di cose ovvie e tipici errori da principiante.

Ad esempio, mi è stato detto che oracolo come nessun incremento automatico.

Questo è il tipo di cose che sto cercando. Sarei grato per ogni ulteriore conoscenza che aiuti a evitare di creare nuove soluzioni ai problemi già risolti.

+0

+1 per essere in tema. – Johan

risposta

29

Ecco un link con tutte le differenze tra Oracle e MySQL, da parte della società che possiede sia :-)

fare attenzione quando googling, ci sono un sacco di informazioni obsolete in rete. Ignora tutto ciò che è più vecchio di 3 anni.

+1

+1 per referenziare la vista del cavallo ;-) – DCookie

+0

oh non l'ho mai trovato primo documento. Ho guardato la loro pagina ma ho trovato solo un confronto delle prestazioni che non mi interessa ma penso che la tabella 2.1 su quel collegamento oracle sia ciò che stavo cercando! grazie – Yashima

+0

Mi chiedo se qualsiasi tipo di unificazione sia nei piani di Oracle. Penso che sia sciocco avere due prodotti correlati con molte incompatibilità superficiali. Avere una migliore compatibilità gioverà anche a Oracle se rendesse più facile la transizione dal prodotto economico al costoso :-D – marcus

4

Ad esempio, mi è stato detto che oracolo come nessun incremento automatico.

Oracle ha sequenze; è solo una notazione diversa. L'idea di un valore di colonna che viene automaticamente incrementato su INSERT è sicuramente lì.

Oracle aggiungerà le chiavi primarie e quelle esterne come vincoli, separati dalla definizione della tabella.

PostgreSQL è la cosa più vicina a Oracle tra i database open source. Anch'esso ha sequenze.

+0

grazie, quindi posso creare l'auto-incremento solo in un modo diverso che è buono. Con mia grande vergogna devo ammettere che finora ho visto solo un pezzettino di sybase oltre a mysql – Yashima

+4

@duffymo, puoi definire vincoli e PK all'interno della definizione della tabella, se lo desideri. Vedere le definizioni dei vincoli in linea qui: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#sthref7519 – DCookie

-1

Il raggruppamento è una grande differenza, poiché MySQL ha una propria interpretazione non standard del raggruppamento. Quindi, se stai utilizzando un gruppo di gruppi intelligenti, potresti scoprire che Oracle non eseguirà le tue query.

http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html

+0

Se si desidera testare il comportamento di raggruppamento simile a Oracle nel vecchio MySQL abilitare il la modalità 'only_full_group_by' vede: http://dev.mysql.com/doc/refman/5.6/en/server-sql-mode.html#sqlmode_only_full_group_by – Johan

Problemi correlati