|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2002
Messaggi: 202
|
[PostgreSQL] Problema con integrità referenziale (da newbie)
Ecco il mio problema, sarà elementare, ma mi ha messo in crisi.
Ambiente: PostgreSQL 7.3.4/phpPgAdmin 3.3/ php 4.3.3 su mandrake 9.2 Sto cercando di fare un esercizio base per provare il concetto dell'integrità referenziale ma ottengo un errore. Il mio tracciato è: --- CREATE TABLE product( category INT NOT NULL, PRIMARY KEY (category) ) TYPE=INNODB; CREATE TABLE product_order( no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, FOREIGN KEY (product_category) REFERENCES product (category), PRIMARY KEY (no) ) TYPE=INNODB; Perchè mi restituisce il seguente errore? --- Errore SQL: ERROR: parser: parse error at or near "TYPE" at character 108 Nel costrutto: CREATE TABLE product( category INT NOT NULL, PRIMARY KEY (category) ) TYPE=INNODB; CREATE TABLE product_order( no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, FOREIGN KEY (product_category) REFERENCES product (category), PRIMARY KEY (no) ) TYPE=INNODB; A differenza di MySql, le tabelle InnoDB sono comunque supportate senza particolari opzioni in fase di installazione, giusto? Grazie in anticipo per le eventuali risposte. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Se non ricordo male InnoDB non è piu necessario in mysql visto che ora supporta ampiamente tutte le caratteristiche che fornivano le tabelle innodb in modo nativo. In ogni caso non funziona in postgres perchè quel type è una sintassi specifica di mysql quindi puoi eliminarlo tranquillamente.
ciao ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2002
Messaggi: 202
|
Premesso che al momento non riesco subito a testare la modifica perchè sono in ufficio, quindi ti chiedo se la sintassi giusta sarà:
--- CREATE TABLE product( category INT NOT NULL, PRIMARY KEY (category) ) INNODB; grazie mille |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
togli 'INNODB' e' un tipo di tabella specifico di mysql, lascia dsolo la CREATE TABLE
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jul 2002
Messaggi: 202
|
......ma quindi PostgreSQL di default assume la tabella come InnoDB?
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
quindi il tipo tabella INNODB non esiste in postgre anzi che io sappia esiste un tipo solo, il suo nativo. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:09.