Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Anfänger benötigt Hilfe vom Experten - Unique Spalte?!

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Kenwinter, 14 Januar 2014.

  1. Kenwinter

    Kenwinter Benutzer

    Hallo liebe SQL Forenexperte,

    ich wende mich an Euch weil ich dazu verdonnert wurde eine KOntaktliste in Strato zu pflegen diese aber dort nicht mehr so funktiniert wie ich Sie kennengelernt habe. Die haben von Strato aus eine neue SQL Version aufgespielt und seitdem kann ich in der Datenbank nur noch lesen oder sortieren aber nichts mehr ändern,löschen oder anfügen.

    Oberhalb meiner Kontakte steht der Hinweis:

    upload_2014-1-14_13-7-14.png

    Wie kann ich als Laie eine Unique Spalte mit Primäry Key nachfügen - was SQL angeht habe ich 0 Kennttnisse, gegooglet und Forensuche habe ich genutzt aber ich komme nicht weiter leider.

    Kann mir wer helfen bitte?

    Gruß

    K.Winter
     
  2. akretschmer

    akretschmer Datenbank-Guru


    So in PostgreSQL. MySQL dürfte ähnlich sein.
     
  3. akretschmer

    akretschmer Datenbank-Guru


    Btw.: Strato ist da ganz sicher unschuldig. Denen ist es schnuppe, ob die Tabelle durch Kunden mit oder ohne PK angelegt wird.
     
  4. Kenwinter

    Kenwinter Benutzer

    Danke für die schnelle Antwort :

    ich geh mal davon aus das damit gemeint ist den Befehl als SQL einzugeben. Wenn ich das bei aufrufe kommt das:

    upload_2014-1-14_13-17-18.png

    Schmeiss ich da jetzt den Befehle einfach hinter den bestehenden oder muss ich rechts ne Spalte vorher auswählen?
     
  5. Kenwinter

    Kenwinter Benutzer

    Schnuppe ist das richtige Wort - am Telefon haben die mich an Ihre Faq verwiesen und man selbst verantwortlich ist. Erst selbst ändern und dann dem Kunden nicht mehr helfen, zum Glück gibts User die Usern helfen!
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Solche Befehle nicht werfen oder schmeißen, die sind empfindlich und können kaputt gehen.
     
  7. akretschmer

    akretschmer Datenbank-Guru

    [_] Du hast verstanden.

    Dein Provider ist nicht dafür verantwortlich, was Du in Deinen Datenbanken machst. Wenn Du von SQL keinen Plan hast und Dir daher mit dem Maschinengewehr (Dauerfeuer) in den eigenen Fuß ballerst, dann ist das einzig und allein Dein Ding.

    Wenn Dir der Hoster ein neues PMA hinstellt, welches plötzlich vielleicht zum editieren einen PK verlangt (ich weiß es nicht, ich arbeite weder mit MySQL noch mit PMA und weiß nicht, was da (angeblich) geändert wurde), dann ist das etwas, was Du nutzen KANNST, aber nicht MUßT.
     
  8. Kenwinter

    Kenwinter Benutzer

    Wenn ich Sie sanft eintippe kommt das :

    upload_2014-1-14_13-25-42.png

    Der Lösung nah und doch so fern :-(
     
  9. akretschmer

    akretschmer Datenbank-Guru

    Ja, Du sollst ja auch mitdenken. Tippst Du alles ungefiltert ein, ja?

    Code:
    delete from adressen_de;
    
    Löscht Dir Deine Tabelle z.B. Ich hoffe, Du hast bis hier gelesen und nicht gleich Copy&Paste gemacht?
     
    Kenwinter gefällt das.
  10. Kenwinter

    Kenwinter Benutzer

    Quäle ruhig einen gequälten - delete löscht schon klar, aber was ist an dem obereren Befehl noch einzufügen , die DBNr? Der Name der zu bearbeitende Spalte?
     
  11. akretschmer

    akretschmer Datenbank-Guru

    Was willst Du tun? Du willst
    • eine Tabelle ändern -> alter table
    • welche? -> Name
    • eine neue Spalte zufügen -> add column
    • diese braucht einen -> Name
    • diese soll primary key sein -> primary key

    Gar nicht so schwer, oder? Kann aber sein, daß die Syntax in MySQL leicht anders ist -> Doku lesen.
     
  12. NeoPrince

    NeoPrince Aktiver Benutzer

    Wenn ich das Richtig sehe, sollte dir dieser befehl helfen

    Code:
    alter table DB460711.adressen_de add column id serial primary key;
     
    Kenwinter gefällt das.
  13. akretschmer

    akretschmer Datenbank-Guru

    Bin ich mir etwas unsicher, weil
    • MySQL kennt kein Datentyp SERIAL
    • MySQL versteht, glaube ich, keine Inline-Definition von Primary Keys

    Möglicherweise will der Fragesteller das als AUTOINCREMENT anlegen und in einem 2ten Schritt als PK definieren.
    http://www.w3resource.com/mysql/altering-table/alter-table-add-primary-key.php
     
  14. NeoPrince

    NeoPrince Aktiver Benutzer

    Hab ich mir auch gedacht aber der befehl funktioniert mit meiner DB.
    Dass mit dem Autoincrement ist bei der Spalte natürlich von vorteil aber nicht notwendig

    Was mir allerdings gerade einfällt, ist dass er evtl einen Fehler bekommt, weil es schon Daten gibt, und MySql nicht weis, was es da jetzt reinschreiben soll.
    Ich hab es mit ner Leeren Tabelle probiert. Wie würde man es hinbekommen, die Tabelle ordentlich durchzunummerieren, wenn MySql das nicht selber kann ?
     
  15. akretschmer

    akretschmer Datenbank-Guru

    MySQL entsorgen und eine andere DB nehmen? ;-)

    Code:
    test=# select * from foo;
     mitarbeiter | anzahl
    -------------+--------
     hans  |  10
     otto  |  20
     willi  |  50
     anna  |  130
    (4 rows)
    
    test=*# alter table foo add column id serial primary key;
    ALTER TABLE
    test=*# select * from foo;
     mitarbeiter | anzahl | id
    -------------+--------+----
     hans  |  10 |  1
     otto  |  20 |  2
     willi  |  50 |  3
     anna  |  130 |  4
    (4 rows)
    
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden