Probleme bei der Erzeugung einer Tabelle

DennisXX

Bekanntes Mitglied
Hi Folks !

Ich bekomme immer eine Fehlermeldung, wenn ich in meinem DBMS eine Tabelle mittels CREATE Statement erstellen möchte. Ich setze hier einfach ein paar Felder, setze einen primär- und einen Fremdschlüssel mithilfe eines Constraints.

Ich bekomme explizit bei der Erstellung des Fremdschlüssels in der tabellen eine fehlermeldung. Erst wenn ich die Tabelle erstellt habe und dann mithilfe einer ALTER Anweisung den Fremdschlüsselconstraint setze, bekomme ich keine Fehlermeldung und das Statement wird vom DBMS durchgewunken.

Warum ist das eigentlich so?

Greetz
Dennis
 

DennisXX

Bekanntes Mitglied
Hier ist der Code:

SQL:
CREATE TABLE person
(person_id SMALLINT UNSIGNED,
 vorname VARCHAR(20),
 nachname VARCHAR(20),
 city VARCHAR(20)
 CONSTRAINT pk_person PRIMARY KEY (person_id),
 CONSTRAINT fk_person FOREIGN KEY (person_id)
    REFERENCES person (person_id)
);

Greetz
Dennis
 

Evil-Devil

Top Contributor
Wenn ich das richtig sehe fehlt da nach deinem letzten Feld city und vor dem references ein Komma.
AFAIK wird jede Definitionszeile beim Create Table mit einem Komma getrennt. Das sollte sogar unabhängig vom DBMS sein und direkt im SQL Standard stehen.

Richtig sollte also sein:
[sql]
CREATE TABLE person
(person_id SMALLINT(5) UNSIGNED default 0,
vorname VARCHAR(20),
nachname VARCHAR(20),
city VARCHAR(20),
CONSTRAINT pk_person PRIMARY KEY (person_id),
CONSTRAINT fk_person FOREIGN KEY (person_id),
REFERENCES person (person_id)
);[/sql]

//edit: ich hab mal noch die Größe vom Smallint angefasst und ein default gesetzt. Sonst steht da nachher noch null drin...

Ist das eigentlich richtig, dass deine ID nicht auto inkrementiert werden soll?
 
Zuletzt bearbeitet:

DennisXX

Bekanntes Mitglied
Hi Folks !

Danke für die bisherigen Beiträge. Ich möchte euch nochmal etwas fragen:

Können solche Fremschlüsseldefinitionen evtl. auch deshalb einen Fehler erzeugen, wenn die Tabelle, auf die dieser Fremschlüsselconstraint zeigt bzw. zeigen soll und codetechnisch im CREATE Statement umgesetzt wird, zu diesem Zeitpunkt noch gar nicht erzeugt wurde?

Greetz
Dennis
 

DennisXX

Bekanntes Mitglied
Hi Folks again !

Also ist mein zuerst geschriebenes CREATE TABLE Statement in dieser Form schon richtig, aber wenn eben die Tabelle, auf die mittels eines Fremdschlüsselconstraints verwiesen werden soll, noch nicht erzeugt wurde, erhalte ich eine Fehlermeldung bei der Durchführung des CREATE TABLE Statements. Ist das so jetzt halbwegs korrekt?

Greetz
Dennis
 

Evil-Devil

Top Contributor
Daraus habe ich verstanden, dass Dein Applikationscode sich um die Integrität kümmert.

Tut er in gewisser Weise. Aber die Intigrität beginnt bereits beim DRM Design. Da die Inserts ohnehin sequentiell abgearbeitet werden, müssen das die Deletes auch sofern es notwendig ist.

Das letzte Mal das ich Referentielle Intigrität genutzt habe war bei Access...zum verhindern von versehentlichen löschen durchaus praktisch. Nur was tut man, wenn man den einen oder anderen Eintrag trotz des RI Schutzes löschen will?

Dennis, wir haben dein Create Statement doch schon korrigiert. Dir fehlte lediglich ein Komma. Wenn du das Statement ausführst sollte SQL eine Syntax Fehlermeldung erzeugen.
 
B

bERt0r

Gast
Also ich weis ja nicht:

SQL:
CREATE TABLE person
(person_id SMALLINT UNSIGNED,
 CONSTRAINT pk_person PRIMARY KEY (person_id),
 CONSTRAINT fk_person FOREIGN KEY (person_id)
    REFERENCES person (person_id)
);

Warum ist person_id gleichzeitig der Primary Key und Referenziert auch noch ein weiteres person_id in der gleichen Tabelle (das kann ja nur eine rekursive Beziehung sein). Abgesehen davon, dass so ein Konstrukt unsinnig ist, weis ich auch nicht ob die DB das zulässt, und wenn wirst du wohl deine Probleme mit Inserts auf diese Tabelle haben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
Zrebna Probleme bei Überführung von SQL-Code in eine HQL-Abfrage Datenbankprogrammierung 3
Kirby.exe Probleme mit docker-compose.yml Datenbankprogrammierung 4
B Probleme mit Datenbankverbindung Datenbankprogrammierung 2
N java SQL JAR - Probleme Datenbankprogrammierung 18
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
T Oracle Probleme bei getTableName Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
D Probleme bei Einsteiger Aufgabe SQL Datenbankprogrammierung 2
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
M MySQL probleme beim "Generate Tables from Entities" Datenbankprogrammierung 9
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
W Probleme mit AND und OR Datenbankprogrammierung 5
D DB Tabelle in JTable anzeigen - Probleme Datenbankprogrammierung 8
Gossi CallableStatement Probleme Datenbankprogrammierung 8
L MySQL Probleme mit PreparedStatement für SQL-Abfrage in Java Datenbankprogrammierung 2
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
M Probleme mit Triggering Datenbankprogrammierung 2
F DB2 Probleme mit dem DriverManager Datenbankprogrammierung 4
S Derby/JavaDB OpenJPA, @oneToMany und Probleme Datenbankprogrammierung 2
I MySQL Probleme mit kyrillischen Zeichen Datenbankprogrammierung 2
A Derby/JavaDB Probleme beim Einbinden Datenbankprogrammierung 2
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
R isLast() Probleme bei Pervasive Datenbankprogrammierung 5
S Probleme mit localhost Datenbankprogrammierung 14
M Oracle Probleme mit dem anbinden einer Oracle 10g Datenbank Datenbankprogrammierung 27
J MySQL Hibernate: Probleme beim Speichern von OneToMany - Datensätzen Datenbankprogrammierung 2
P Hibernate -> Probleme bei n:m-Relation und JUnit Datenbankprogrammierung 10
J Probleme mit Datenbankzeiger Datenbankprogrammierung 19
A Probleme mit auf DB2 Express zugreiffen Datenbankprogrammierung 6
N Probleme beim Aufruf aus der DB Datenbankprogrammierung 7
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G Probleme mit Datenbankanbindung Datenbankprogrammierung 3
R Probleme mit Insert Datenbankprogrammierung 2
P Probleme mit Oracle Timestamp Datenbankprogrammierung 3
klattiator Hibernate - Probleme bei Konfiguration Datenbankprogrammierung 3
F Probleme mit entfernter DB und Hibernate Zeichensatz Datenbankprogrammierung 3
G Probleme mit der Schnittstelle H1bernate/Eclipse Datenbankprogrammierung 6
A Probleme mit Jar-File in ein Jar-File Datenbankprogrammierung 8
O Derby Performance Probleme? Datenbankprogrammierung 4
V Probleme beim Öffnen "einiger" SuperbaseTabellen p Datenbankprogrammierung 8
G Probleme beim Methodenaufruf einer EJB Datenbankprogrammierung 10
ARadauer hibernate probleme Datenbankprogrammierung 13
Y Probleme mit H2 und Primary Key Datenbankprogrammierung 4
D Probleme mit mysql-Connection Datenbankprogrammierung 10
G INNODB backup probleme Datenbankprogrammierung 2
S Probleme mit statement.close() Datenbankprogrammierung 10
A Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB Datenbankprogrammierung 2
G Probleme mit Laden des JDBC-Treiber in HSQLDB Datenbankprogrammierung 2
T Probleme mit Date in H2 Datenbank Datenbankprogrammierung 2
4 Probleme mit Select abfrage Datenbankprogrammierung 4
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
R Probleme mit Datensätzen in MySql DB Datenbankprogrammierung 3
B Oracle Driver Probleme Datenbankprogrammierung 2
I Probleme bei MySQL - Replikation Datenbankprogrammierung 2
R Probleme mit ausführbarem Jar Archiv Datenbankprogrammierung 9
F Probleme mit Jar Datei Datenbankprogrammierung 3
S String probleme Datenbankprogrammierung 3
R Probleme mit der Verbindung zum localhost Datenbankprogrammierung 12
S Probleme bei der Installation von MySQL 5.0 Datenbankprogrammierung 4
A Probleme mit ResultSet und getString(i) Datenbankprogrammierung 13
G Probleme mit Access und Join Datenbankprogrammierung 3
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
M Daten von MySQL nach MSSql probleme beim schreiben Datenbankprogrammierung 3
S JDBC-Anfänger und Probleme beim Treiberfinden etc. Datenbankprogrammierung 4
T Probleme beim Verbindungsaufbau zum SQL 2000 Datenbankprogrammierung 2
G Probleme mit Datenbankeinträge Datenbankprogrammierung 4
G Probleme mit Treiber (connector) Datenbankprogrammierung 20
thE_29 getBytes() - russland/bulgarien -- andere Codecs Probleme Datenbankprogrammierung 8
E Probleme mit JDBC und Executable-Jar Datenbankprogrammierung 2
G Probleme mit MySQL - Anmeldung Datenbankprogrammierung 2
P Probleme mit NullPointerException Datenbankprogrammierung 5
K MySQL: Probleme mit dem Verbinden per IP-Adresse Datenbankprogrammierung 6
T Probleme mit Datenbank Datenbankprogrammierung 6
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
D Zweckmäßigkeit einer Schlüsseltabelle Datenbankprogrammierung 4
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
J In einer bestimmten Spalte suchen mit Suchfeld (MS SQL) Datenbankprogrammierung 7
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
S Anmelden an einer msql datennbank Datenbankprogrammierung 1
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0

Ähnliche Java Themen

Neue Themen


Oben