AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite: ALTER TABLE if not exists

Ein Thema von Kratons · begonnen am 3. Nov 2014 · letzter Beitrag vom 11. Nov 2014
 
Kratons

Registriert seit: 20. Okt 2014
Ort: Deutschland
12 Beiträge
 
FreePascal / Lazarus
 
#1

SQLite: ALTER TABLE if not exists

  Alt 3. Nov 2014, 17:27
Schönen Tag liebe Community,

Ich habe wiedermals ein Problem bei dem ich selbst nicht weiterkomme...
Untzwa möchte ich gerne eine Tabelle in SQLite schritt für schritt überprüfen und gegbenenfalls anpassen,
dies soll so geschehen damit ich im nachhinein einfach ändreungen an der tabellenstruktur vornemen kann ohne die bereits vorhandenen daten zu verlieren.

Da SQLite allerdings die "if not exists" Clause bei Alter Table nicht unterstützt muss ich mich da jetzt irgentwie drumrum schreiben.
Ich bin schonmal dazu gekommen mit PRAGMA table_info die daten abfragen zu wollen, dies funktionirt jedoch nicht und mir wird immerzu nur ein:

Syntax error near "("

ausgegeben...
(Dem neben dem table_info!)

Code:
 dbC.Open; //Datenbank Erstellen falls nicht vorhanden.
  // erstelle Tabelle User falls nicht vorhanden
  dbQ.SQL.Text:='CREATE TABLE if not exists ''user'' (id varchar(36) primary key)';
  dbQ.ExecSQL; dbT.Commit;
  //erstelle spalte name falls nicht vorhanden
  dbQ.SQL.Text:='SELECT name FROM PRAGMA table_info (user)';
  dbQ.ExecSQL; dbT.Commit;
  if dbQ.EOF = True then
  begin
  dbQ.SQL.Text:='ALTER TABLE user ADD COLUMN name varchar(20) unique';
  dbQ.ExecSQL; dbT.Commit;
  end;
danach würde nnoch mehrere spalten kommen, diese sind dan ja aber einfach Copy/Paste....

Ich habs auchschon mit
Code:
  dbQ.SQL.Text:='SELECT name FROM PRAGMA table_info(user)';
und
Code:
  dbQ.SQL.Text:='SELECT name FROM PRAGMA table_info (''user'')';
Probiert leider ohne Ergebniss.

Schonmals vielen Dank für eure Antworten.

Die Antwort: 42
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz