[SQL] INSERT nur wenn Tabelle vorhanden

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von ggo, 4. Februar 2014 .

  1. 4. Februar 2014
    Hallo,

    ich Versuche folgendes Szenario per SQL Statement zu lösen, jedoch ohne Erfolg.

    Ich möchte einen SQL Insert machen wenn eine andere Tabelle vorhanden ist.

    Sinngemäß soll es so gehen:

    Code:
    INSERT INTO `settings` (`plus`) VALUES (1) IF EXISTS TABLE `plus`;
    Ich hoffe das mir jemand weiterhelfen kann.
     
  2. 4. Februar 2014
    AW: [SQL] INSERT nur wenn Tabelle vorhanden

    Die erste Antwort: Check if table exists in mysql - Stack Overflow bzw. sql - MySQL - check if table exists without using select from - Stack Overflow
     
  3. 4. Februar 2014
    AW: [SQL] INSERT nur wenn Tabelle vorhanden

    Sieht mir eher so aus als würdest du prüfen wollen ob eine Spalte in einer Tabelle existiert.

    Das würde auch gehen, ist aber ein recht dummes Design.

    Vielleicht wäre ein generisches Layout in deinem Fall besser.
    Code:
    ---------------------
    [B][U]id[/U][/B] | [B][U]name[/U][/B] | [B][U]value[/U][/B] 
    ---------------------
    1 | plus | 1
    ---------------------
    2 | minus | 2
    Code:
    UPDATE `settings` SET `value` = 1 WHERE `name` = `plus`
    Wie dem auch sei, so würde es gehen:
    Code:
    SELECT COUNT(*) as `exists` 
    FROM information_schema.COLUMNS 
    WHERE 
     TABLE_SCHEMA = 'name-der-datenbank' 
     && TABLE_NAME = 'settings' 
     && COLUMN_NAME = 'plus'
    Der Query gibt dir 1 (= Spalte existiert) oder 0 zurück.
     
  4. 5. Februar 2014
    AW: [SQL] INSERT nur wenn Tabelle vorhanden

    Hallo!

    Vielleicht solltest du dir Gedanken machen, ob du wirklich gezwungen wirst diese Art von SQL-Abfragen zu nutzen. Ich kenne jedenfalls keine Anwendung, außer Datenbanken selbst, die zur Laufzeit dynamisch Tabellen erstellen oder löschen müssen. Deshalb, wenn möglich, deine Anwendungsarchitektur und dein Datenschema überdenken und gegebenfalls überarbeiten.

    Mfg,

    Kolazomai
     
  5. 6. Februar 2014
    AW: [SQL] INSERT nur wenn Tabelle vorhanden

    Was soll die Abfrage denn machen? Das kann man sicher anders lösen...
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.