SQL INSERT

Status
Nicht offen für weitere Antworten.

chipmount

Aktives Mitglied
habe 2 tabellen
bestellung und bestellposition

ich möchte ein insert machen

Code:
........
try{ 
          
             String sql; 
             Connection c= null ; 
    sql ="INSERT INTO Bestellung(bestnr,name,bestelldatum)VALUES(?,?,?)"; 
        
    
      Class.forName ("oracle.jdbc.driver.OracleDriver"); 
      c = DriverManager.getConnection("jdbc:oracle:thin:@:1521:"", "", ""); 
      
        
      
      PreparedStatement p = c.prepareStatement(sql) ;             
      p.setString(1,"bestellung.bestnr"); 
      p.setString(2,"bestellung.name"); 
      p.setString(3,"bestellung.bestelldatum"); 
      p.executeUpdate(); 
      c.commit(); 
       p.close(); 
       c.close(); 
      
      
  } //end try 
    
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } //end catch 
.......

ich kann zwar werte einfügen aber kriege eine fehlermeldung "verstos gegen eindeutigkeit" weil bestnr ein pk_schlüssel in bestellposition ist

also wie kann ich die bestnr auch in bestellposition einfügen( in einer sql abfrage);
danke
 
G

Guest

Gast
Schau Dir den ersten gespeicherten Wert in der Datenbank an, dann siehst Du, was falsch ist.
 

chipmount

Aktives Mitglied
was meinst du damit der wert ist richtig oder ???:L
meine überlegung ist die bestnr soll integer sein
 
G

Guest

Gast
Das hier ist der Fehler.

p.setString(1,"bestellung.bestnr");
p.setString(2,"bestellung.name");
p.setString(3,"bestellung.bestelldatum");

Schau Dir die Werte der Spalten in der Datenbank an.
 
G

Guest

Gast
Bestellnr ist sicherlich ein Primärschlüsselfeld.
Du versuchst mehrfach den gleichen Wert in die Datenbanktabelle einzufügen.
 

chipmount

Aktives Mitglied
nein
ich habe constrains angelegt und zwar
Bestellung(bestnr,...)
Bestellposition(bestnr,posnr...)

das heist wenn ich bestnr in bestellung ablegen möchte muss er in bestellposition auch vorhanden sein
 

chipmount

Aktives Mitglied
wenn ich
Code:
insert into bestellposition(bestnr,posnr) value('6000','6');
commit;

fehlermeldung:
verstoß gegen Constrain übergeordn. schlüssel nicht gefunden
 
G

Guest

Gast
Ich sehe es so.
Eine Bestellung kann ohne Bestellpositionen angelegt werden, umgekehrt aber nicht.
Klartext: Du speicherst die Bestellung, dann die Bestellpositionen oder Du überträgst
alles auf einmal und machst es dann (die bessere Lösung; siehe sequence in IDL)

Vergiss für's erste Corba und mache es ohne die Corba-Schicht als reine Java Implementierung
wie ich Dir in dem Connector-Beispiel vorgeschlagen habe.
Wenn alles mit dem Anlegen, Ändern, Löschen etc. funktioniert, dann baust Du die Corba
Schicht dazu.

Also statt
<CLIENT> <--> <CONNECTOR> <-- Netzwerk --> <CORBA-Servant> <--> <DB-Klasse>

zuerst mal so:
<CLIENT> <--> <CONNECTOR> <--> <DB-Klasse>
 

chipmount

Aktives Mitglied
ich brauche nichts mehr auser diese scheis schlüssel rauszunehmen oder die abhänigkeiten zu änder am sonsten funk. alles
 

chipmount

Aktives Mitglied
habe jetzt die constraints deaktiviert
nur aus irgendeinem grung erscein in er tabelle bestellung
2 mal
6000,test,12.12.2004
was soll das jetz??
 

abollm

Top Contributor
chipmount hat gesagt.:
habe jetzt die constraints deaktiviert
nur aus irgendeinem grung erscein in er tabelle bestellung
2 mal
6000,test,12.12.2004
was soll das jetz??

Ich nehme aufgrund aller deiner bisherigen Angaben einmal folgende Randbedingungen an:

Deine Tabelle "Bestellung" enthält mindestens die folgenden Spalten:

BESTNR
NAME
BESTELLDATUM

Für diese Tabelle hast du einen Primary Key (Primärschlüssel) angelegt, d.h. am
besten für die Spalte BESTNR, die damit eindeutig sein _muss_.

Weiterhin nehme ich an, deine Tabelle "Bestellposition" enthält _mindestens_ die folgenden Spalten:

POSNR
BESTNR -> das entspricht dem Fremdverweis auf die Tabelle "Bestellung" und dort
der eindeutigen Spalte BESTNR
(MENGE
PREIS) -> nicht unbedingt notwendig, hatte ich mir nur gemerkt aus einem anderen Fall von dir

Dann hast du auch der Tabelle "Bestellposition" einen Primary Key hinzugefügt, der sich aus den Spalten

BESTNR
POSNR

zusammensetzt. Diese beiden Spalten müssen in der Kombination also eindeutig
sein, ansonsten meldet dir Oracle halt eine "Unique Constraint Violation".

Wenn das alles so ist, beide PKs aktiviert sind. dann muss folgende SQL-
Einfügeoperation (Datentypen jeweils VARCHAR2 bzw. DATE) in z.B. _"SQL*Plus"_
erfolgreich, d.h. ohne Fehlermeldung durchlaufen, sofern nicht bereits
entsprechende Daten vorhanden sind:

Code:
INSERT INTO bestellung
(BESTNR,BESTSUM,NAME,BESTELLDATUM)
VALUES
('5',NULL,'Meier',to_date('01.12.2004','DD.MM.YYYY'))
/

Zusätzlich zu den sehr nützlichen Hinweisen von Gast noch folgender Tipp:

Sich immer erst die Datenstruktur(en) vollständig verdeutlichen. Dann auf der
Datenbankebene mit den Oracle- (SQL*PLus, Enterprise-Manager etc.) oder mit
anderen Tools (Toad, SQL-Navigator etc.) testen und erst dann in Java umsetzen.
Du ersparst dir im Regefalll mit dieser Vorgehensweise Arbeit, sofern du nicht ein
Voll-Profi im Bereich SQL bzw. PL/SQL bist (was ich aber aus den bisherigen
Postings einmal ausschließen möchte).

Übrigens: Wenn du die PKs deaktivierst, dann ist es kein Wunder, wenn du doppelte
Datensätze erhältst.

Hoffe dir geholfen zu haben.
 

Bleiglanz

Gesperrter Benutzer
habe jetzt die constraints deaktiviert
nur aus irgendeinem grung erscein in er tabelle bestellung
2 mal
6000,test,12.12.2004
was soll das jetz??
aus irgend einem schrägen grund (der NICHTS mit JDBC und SQL zu tun hat) wird der Insert zweimal aufgerufen, überprüf mal die Logik deines Programms...

wenn du das zweimalige Einfügen des gleichen Datensatzes verhindert hast, dann kannst du auch den Primärschlüssel-Constraint wieder aufnehmen!
 
G

Guest

Gast
Das Testprogramm zwei Mal ausgeführt und schon ist das Drama da.

Was Du falsch machst?

Du gehst verdammt unsystematisch und total planlos an die Sache ran.
Du versuchst alles auf einmal zu machen, statt zuerst einen Teil vom
ganzen fertig zu kriegen.
Schreib' einfach zuerst paar Klassen/Methode für den Zugriff auf die Datenbank
und teste es ordentlich aus. Danach kannst Du den Rest angehen. Systematisch
eins nach dem anderen. Und das Corba-Woodoo ganz zum Schluß.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
G MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
Kenan89 Insert ohne Auswirkung Datenbankprogrammierung 7
B MySQL myBatis INSERT Datenbankprogrammierung 13
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
M Insert in Table mit 250 Feldern Datenbankprogrammierung 2
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
G ODBC Insert und gleich danach Selects Datenbankprogrammierung 8
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
C ID-Rückgabe bei INSERT Datenbankprogrammierung 5
D mysql insert - performance/robustheit, "best practice" Datenbankprogrammierung 15
M Hibernate: Insert statt Update Datenbankprogrammierung 8
C Rückgabe ob INSERT erfolgreich Datenbankprogrammierung 11
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
K DB2 Insert mit Subselect Fehler Datenbankprogrammierung 2
M Derby insert, ID auslesen Datenbankprogrammierung 3
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
G Frage zum Insert-Statement Datenbankprogrammierung 2
R Probleme mit Insert Datenbankprogrammierung 2
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
S Insert mit Select Datenbankprogrammierung 6
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B PrepareStatement "Insert into" fehlermeldung Datenbankprogrammierung 13
D Insert Oracle BLOB Datenbankprogrammierung 1
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
Y Hibernate - Datum Insert Datenbankprogrammierung 7
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
U INSERT INTO von 2 Textfeldern Datenbankprogrammierung 6
D Syntaxfehler in der INSERT INTO Anweisung Datenbankprogrammierung 2
F JAVA & MySQL : INSERT INTO DB ! Datenbankprogrammierung 2
D Problem mit INSERT INTO Datenbankprogrammierung 19
S insert into table Datenbankprogrammierung 8
S Insert in Datenbank Datenbankprogrammierung 15
G Insert-anweisung mehrere Varianten eine geht Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16

Ähnliche Java Themen

Neue Themen


Oben