Anfängerfrage -SQL Abfrage-

derMueller

Benutzer
Beiträge
10
Hallo zusammen,

ich würde gerne 3 Dinge mit meiner SQL Datenbank veranstalten, damit ich nicht jeden Wert manuell ändern muß. Leider bekomme ich diese vermutlich einfachen Dinge nicht hin. Kann mir jemand helfen?

1. Ich würde gerne den Inhalt einer Spalte aktualisieren.

UPDATE <Tabelle>
SET <Spalte> = REPLACE( <Spalte>,'', 'Neuer Eintrag' )

Macht das keinen Sinn? (Ich bekomme zumindest keine Änderung hin)

2. Ich würde gerne den Inhalt einer Spalte aktualisieren, wenn kein Wert vorhanden ist :

SELECT * FROM `Tabelle` SELECT REPLACE(`Spalte`, IS NULL, 'Neuer Wert');
SELECT * FROM `Tabelle` SELECT REPLACE(`Spalte`, = '', 'Neuer Wert');

Macht das keinen Sinn? (Auch hier, ich bekomme leider keine Änderung hin)

3. Ich würde die Werte der Tabelle in die gleiche Tabelle nochmal kopieren von Zeile 10.000-20.000 und diese dann unten anhängen.
Hierzu habe ich leider keine Idee im Netz gefunden, vielleicht kann mir dazu jemand was schreiben, dass ich es Umsetzen kann?

Sorry, ich habe keine Ahnung, aber die 2000 Datensätze mit einem Makrorecorder zu bearbeiten ist total unsinnig, das wäre dann aber wohl meine Lösung B.

Viele Grüße Jan
 
Werbung:
Replace() gibt das Ergebnis eines Teilstringtausches zurück. Wenn der alte Wert nicht weiter benötigt wird, braucht man es nicht.

1. Update <tablename> set <columnname>= 'neuer Wert'
2. wie 1. aber mit Where Condition: where <columnname> is null
3. das Konstrukt für das Einfügen bekannter Daten (aus irgendwelchen Tabellen) lautet vereinfacht:
insert into <dest_tablename> <dest_fieldlist>
select <source_fieldlist> from <source_tablename>

Sorry, ich habe keine Ahnung, aber die 2000 Datensätze mit einem Makrorecorder zu bearbeiten ist total unsinnig
Genau!
 
1+2 haben schon mal super funktioniert. Danke!!!

Ich habe zu "3" leider nochmal eine Verständnisfrage:

insert into <Tabelle> <Wie gebe ich denn an "letzter Datensatz? oder den nächsten freien Datensatz: z.B. "22017"?>
select <Datensatz 1> from <Datensatz 100>

Und dann werden die kompletten Zeilen von Datensatz 1-100 mit allen Spalten als letzte Datensätze in die gleiche Tabelle ab 22017 -22117 eingefügt?
 
Datenbanken arbeiten mit Mengen. Stelle Dir einen Eimer Sand vor - welches Körnchen ist das erste oder letzte?
Ok, verstanden.
Wie stelle ich denn sicher, dass alle Spalten auch kopiert werden? oder gebe ich dann alle Spalten so an?

insert into <destination_tablename>
<dest_fieldlistA>
<dest_fieldlistB>
<dest_fieldlistC>
<dest_fieldlistD>
<dest_fieldlistE>
select
<dest_fieldlistA>
<dest_fieldlistB>
<dest_fieldlistC>
<dest_fieldlistD>
<dest_fieldlistE>from <source_tablename>
 
Ach, und der Primärschlüssel aktualisiert sich automatisch? Oder muß ich noch was damit tun?
bei mir ja:

Code:
postgres=# select * from strub;
 id |  data  
----+--------
  1 | zeile1
  2 | zeile2
  3 | zeile3
  4 | data4
  5 | data5
(5 rows)
postgres=# insert into strub (data) select data from strub;
INSERT 0 5
postgres=# select * from strub;
 id |  data  
----+--------
  1 | zeile1
  2 | zeile2
  3 | zeile3
  4 | data4
  5 | data5
  6 | zeile1
  7 | zeile2
  8 | zeile3
  9 | data4
 10 | data5
(10 rows)

postgres=#
 
Leider habe ich selber zu wenig Ahnung um nicht zu sagen, keine Ahnung.

Ich wünsche mir manchmal Access zurück, da konnte man "mal eben" ein paar Datensätze kopieren und es hat immer funktioniert. 😉
 
Werbung:
Ach, und der Primärschlüssel aktualisiert sich automatisch? Oder muß ich noch was damit tun?
Worum geht es Dir? Möchtest Du vermeiden, Dich aus der Komfortzone zu bewegen? Oder ist Dein (gesunder) Respekt vor einem unverstandenen System so groß, dass Du eine Blockade hast?

Du kannst es einfach ausprobieren wie schon vorgeschlagen und falls Du Sorge hast, etwas kaputt zu machen, nimm eine eigene Tabelle.
Oder noch besser, nimm ein fremdes System, das dafür gemacht wurde:

Ich wünsche mir manchmal Access zurück, da konnte man "mal eben" ein paar Datensätze kopieren und es hat immer funktioniert.
Nein, das tust Du nicht. Du verdrängst bestimmt ein paar Dinge bei diesem Wunsch.
Und: Der Satz ergibt keinen Sinn, denn Du kannst in der jeder dusseligen Datenbank mal eben ein paar Datensätze kopieren.
 
Zurück
Oben