vor insert testen ob element schon vorhanden ist

Dieses Thema im Forum "SQL und Datenbanken" wurde erstellt von supersucker, 28.02.2006.

  1. #1 supersucker, 28.02.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    abend zusammen,

    wenn ich bisher vor einem insert testen wollte ob das entsprechende element schon in der datenbank vorhanden ist, hab ich vorher ein select gemacht und dann geschaut ob das resultset größer 0 ist, also in pseudocode:

    Code:
    select * from table where name = "xxx";
    if (resultset == 0) {
        insert into ......
    }
    
    meine frage nun:

    gibt es dafür clientseitig eine bessere möglichkeit? irgendwie kommt mir das reichlich plump vor....

    serverseitig kann ich ja sowas machen wie
    Code:
    if not exists (select .....)  insert into....
    
    aber clientseitig?

    danke für alle tips!
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 lordlamer, 28.02.2006
    lordlamer

    lordlamer Haudegen

    Dabei seit:
    15.05.2003
    Beiträge:
    703
    Zustimmungen:
    0
    Ort:
    hamburg
    hi

    bei mysql gibts nen "insert ignore" - einfach mal tolle dumps machen in phpmyadmin.

    da werden dann vorhanden/gleiche zeilen nicht nochmal reingehauen.

    mfg frank
     
  4. #3 ninguno, 01.03.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    was willst du denn machen wenn der key schon vorhanden ist? das insert dann bleiben lassen oder die entsprechende row updaten? falls letzteres dann kannst du den insert modifier ON DUPLICATE KEY UPDATE verwenden
     
  5. #4 supersucker, 01.03.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    ja, es geht darum das insert dann bleiben zu lassen.

    die sache ist die:

    es sind drei aktionen, ob ich das nun mit jdbc, mysql/php oder sonst was mache:

    - ein select auf das entsprechende element
    - das testen des resultsets
    - das einfügen des elements wenn es noch nicht vorhanden ist

    ich dachte nun das es für so eine oft vorkommende problemstellung bestimmt eine möglichkeit gibt, das "in einem rutsch" zu machen.

    google und seine freunde haben mich mittlerweile allerdings fast davon überzeugt, das es halt nicht anders geht....

    oder hat noch jemand eine idee?
     
  6. #5 ninguno, 01.03.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    und was spricht dagegen das insert einfach zu machen. wenn das insert klappt ist's okay und wenn der key schon vorhanden ist dann kommt halt ein fehler zurück. den kann man ja dann ignorieren.
     
  7. #6 supersucker, 01.03.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    nichts!

    hätte es nur wesentlich ästhetistischer gefunden, wenn man sowas in einer query machen könnte, und nicht versucht was einzutragen und dann den fehler behandelt bzw. ignoriert.

    werd mich damit wohl abfinden müssen.....:-)
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. babsi

    babsi Jungspund

    Dabei seit:
    13.02.2006
    Beiträge:
    15
    Zustimmungen:
    0
    Ort:
    München
    Erstell ne Procedure , das ist doch eine elegante Lösung.
     
  10. brahma

    brahma Netzpirat

    Dabei seit:
    06.12.2005
    Beiträge:
    709
    Zustimmungen:
    0
    Ort:
    Münsterland
    OK, hier ein Auschnitt aus meinem SQL-Backup von gestern:

    Code:
    INSERT DELAYED IGNORE INTO `book_ban` (`ban_ip`) VALUES ('123.123.123.123');
    
    Damit sollten keine Duplikate auftreten.
     
Thema:

vor insert testen ob element schon vorhanden ist

Die Seite wird geladen...

vor insert testen ob element schon vorhanden ist - Ähnliche Themen

  1. sed insert after and before

    sed insert after and before: [GELÖST] sed insert after and before Hallo liebe Leute, ich kann folgenden Befehl "sed insert after" problemlos ausführen, unter FreeBSD 10.1...
  2. Nach INSERT Eintrag ein Script starten?

    Nach INSERT Eintrag ein Script starten?: Hallo Leute, ich habe mal eine Frage: ich habe eine MySQL Datenbank, die enthält in einer bestimmten Tabelle Datensätze. Ist es möglich, immer...
  3. PHP; mySQL; INSERT Problem

    PHP; mySQL; INSERT Problem: Hallo, Wenn Ich diesen PHP Code ausführe: $sql = " INSERT INTO TBL_INHALT (title,content,date,autor) VALUES ('$_POST["title"]' ,...
  4. fedora 5 - keine 3D Beschleunigung: Error inserting drm

    fedora 5 - keine 3D Beschleunigung: Error inserting drm: Hallo, ich habe auf fedora nur einmal kurz 3D Beschleunigung gehabt, das war unter kernel-2.6.16-1.2139. Aber auch nur kurz. Seitdem habe ich...
  5. phpvariablen vor insert/bearbeitung sichern

    phpvariablen vor insert/bearbeitung sichern: hallo ich wollte mal wissen wie bzw. was ihr macht in php um variablen gegen angriffe zu schützen bevor ihr mit ihnen arbeit. also bevor man zb...