[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2013
    Beiträge
    21

    ALTER TABLE mit DROP KEY für Tabelle auf DDS-Basis

    Hallo Forum,

    ist es möglich mit ALTER TABLE die Keys zu droppen, die ursprünglich mal mit DDS definiert wurden?

    Ich habe schon alles mögliche versucht, aber es geht leider nicht.
    Lt. Doku (V6R1) geht nur

    alter table MYFILE
    drop primary key

    Ich habe schon

    alter table MYFILE
    drop primary key (myk1, myk2)

    u.a. versucht.

    Es gibt drei Schlüssel in der Tabelle via DDS, die Datei ist auf UNIQUE gesetzt.

    Unabhängig von DDS-basiserten Tabellen:
    Geht das überhaupt auf DB2?


    Hintergrund:

    Die Datei wurde ursprünglich mit DDS (mit UNIQUE und Schlüsseln) angelegt und über die Zeit um Felder und weitere Schlüssel via SQL erweitert.
    Ein Ändern per DDS und CHGPF würde zwar die Schlüssel rausnehmen aber alles andere, was mit SQL nachgestrickt wurde, verwerfen.


    Alex

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... dann wäre es doch spätestens jetzt an der Zeit den Ist Zustand mit einem aktuellen Erstellungsskript zu konsolidieren (was man eigentlich bei jedem ALTER/CHGPF machen sollte)

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Jun 2013
    Beiträge
    21
    Hallo Herr Bender,

    ja, natürlich - prinzipiell gute Idee (weiß ich natürlich selbst - ist ja auch nicht alles auf meinem Mist gewachsen).

    Generell wäre es schön zu wissen, was da so Sache ist mit ALTER TABLE und DROP KEYs bei DDS basierten Tabellen...

    Alex

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Kann es sein, das die Datei durch das entfernen des Keys nicht mehr unique ist?
    Bekommst du einen Syntax - oder einen Laufzeit Fehler?
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ein CHGPF mit SOURCE ist auch möglich, wenn Indizes und Views auf die PF verweisen.
    Es dürfen allerdings keine Felder entfernt oder dessen Ausprägung wesentlich geändert werden.
    Dies habe ich schon mehrfach durchgeführt.
    Die AS/400 erstellt eine temporäre datei, kopiert alle Daten, ändert alle Verweise aus DSPDBR.
    Wenn das alles geklappt hat, wird das alte Objekt gekillt und das neue umbenannt.

    Ich sehe also dein Problem nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Die Datei wurde ursprünglich mit DDS (mit UNIQUE und Schlüsseln) angelegt und über die Zeit um Felder und weitere Schlüssel via SQL erweitert.
    Ein Ändern per DDS und CHGPF würde zwar die Schlüssel rausnehmen aber alles andere, was mit SQL nachgestrickt wurde, verwerfen.
    Guten Morgen Baldur ...
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Der Fluch der bösen Tat.
    Ich wusste bisher nicht, dass man mit SQL an DDS-Tabellen Felder anhängen kann.
    Dies gehörte (organisatorisch) auf jeden Fall verboten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Ja, das sehe ich auch so.
    Wer das bei uns macht bekommt einen körperlichen Verweis in Form einer Beule
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Bei SQL wird ein Primary Key als Constraint intern angelegt und ist somit auch per SQL entfernbar.
    Bei PF's mit Key ist dieser direkt Bestandteil der PF und somit von SQL nicht bearbeitbar.
    Deshalb gehen auch die meisten Anwendungen so vor, dass die PF keinen Key hat und alle benötigten Schlüssel, also auch Unique's, per LF angehängt werden.
    Dann stellt sich das Problem halt erst gar nicht.

    Also nimm den Vorschlag von Dieter.
    Die SQL-Syntax zum Neuerstellen der Tabelle und aller Abhängigkeiten kannst du dir ja per iSeries-Navigator generieren lassen, dann hast du auch eine änderbare Quelle.

    Ansonsten
    create table newtable as (select * from oldtable) with data
    Anschließend umbenannen, LF's, Views usw. erstellen.
    Am Besten in einer Arbeitslib, dann kann man die Objekte nachher gemeinsam verschieben.

    Ich nehme mal an, dass du nur mit SQL auf die Tabelle gehst und LVLCHK nicht ausgeschaltet hast.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... das ist doch alles der Weg von einem Hundehaufen in den nächsten. Statt hier das letzte bisschen Vernunft, den immerhin vorhandenen primary key zu eliminieren, sollte man hier die Chance nutzen, das Datenbankdesign an dieser Baustelle normalisieren und per Views das drüber zu bauen, was die Applikation benötigt.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da das bei komplexeren Anwendungen ehr selten geht und eher einem Redesign der Anwendung gleichkommt, hier noch ein Vorschlag:

    Vervollständige die DDS-Quelle einfach mit den fehlenden Angaben und mach dann doch einen CHGPF.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... wieso braucht das ein redesign der Anwendung? Wenn die Zugriffe mit SQL erfolgen, merkt die Anwendung nix, solange äquivalente Views zur Verfügung stehen. Wird mit Rekord Löffel Ekzem gearbeitet, verträgt das die Beseitigung des Keys ohnehin nicht ohne Änderungen in den verwendenden Programmen.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Antworten: 7
    Letzter Beitrag: 11-02-14, 12:38
  2. SQL Table etc....
    By mk in forum NEWSboard Programmierung
    Antworten: 20
    Letzter Beitrag: 16-12-13, 12:11
  3. Alter Hintergrund bei aufgerufenem Window
    By Robi in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 14-11-13, 16:18
  4. HR-Lösung von Klages KonSys GmbH: ALTER-BDE
    By Kirsten Steer in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 12-03-03, 13:35
  5. Excel-Datei mit alter IP-Adresse
    By Tommy in forum NEWSboard Windows
    Antworten: 1
    Letzter Beitrag: 11-07-02, 11:10

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •