-
Neueste Beiträge
Archive
- Juni 2019
- Januar 2019
- Juli 2018
- Juni 2018
- Januar 2017
- Dezember 2016
- August 2016
- Mai 2016
- April 2016
- März 2016
- Februar 2016
- Dezember 2015
- November 2015
- Oktober 2015
- September 2015
- August 2015
- April 2015
- Februar 2015
- Januar 2015
- August 2014
- Juli 2014
- Mai 2014
- März 2014
- Februar 2014
- Januar 2014
- Dezember 2013
- November 2013
- Oktober 2013
Kategorien
Meta
Archiv der Kategorie: Allgemein
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
/* Nummeriere die Datensätze ************************* Gegeben sei eine Tabelle aysx mit einem Primary Key. Die Werte für den PK müssen nicht fortlaufend sein. Aufgabe: Nummeriere die Datensätze vom kleinsten bis zum größsten PK-Wert. Das folgende MySQL-Script zeigt exemplarisch, wie das machbar ist. Bedenke, dass die Bestimmung des Rangs (gidf) nicht auf eine "echte" Tabelle beschränkt ist, sondern auch mit einem View und dem Ergebnis einer Abfrage durchgeführt werden kann. Beispieltext: aysx Matthias Kopp 2013 */ create table aysx ( id int PRIMARY KEY, remark varchar ( 64 )); /* Tabelle mit Beispieldaten füllen. */ insert into aysx ( id, remark ) values ( 1, 'Eins' ); insert into aysx ( id, remark ) values ( 512, 'FiveOneTwo' ); insert into aysx ( id, remark ) values ( 21, 'Antv' ); insert into aysx ( id, remark ) values ( 42, 'Antwort' ); insert into aysx ( id, remark ) values ( 23, 'whatever' ); /* Wesentlich ist der self-join. Der PK-Constraint garantiert, dass jede aysx.id nur einmal vorkommt. Eine id ist immer gleich ihrer selbst und alle anderen sind entweder größer oder kleiner. Die where-Bedingung sucht diejenigen Datensätze zusammen, die kleiner-gleich einer id sind - und das für alle ids. Schließlich wird für jede id eine Gruppe gebildet und die Anzahl der Elemente in der Gruppe ist eben der Rang. */ select count(*) as rang, t2.id from aysx t1, aysx t2 where t1.id <= t2.id group by t2.id; /* Ohne Gruppierung und Zählen - die "expandierte" Form. Hier kann man nachvollziehen, welche Elemente vorhanden sind. Zähle und gruppiere selbst! */ select t1.id, t2.id from aysx t1, aysx t2 where t1.id <= t2.id order by t2.id /* Auräumen. */ drop table aysx; |
Natürlich ist das obige Beispiel so in der Praxis nicht vorgekommen. Das Beispiel zeigt eine nützliche Struktur. Im Laufe der Zeit kam immer wieder die Anforderung der Durchnummerierung. Man braucht dazu keinen PK-Constraint, aber wenigstens irgendein Tupel, das unique … Weiterlesen
6. Oktober 2013
Kommentare deaktiviert für Rang in sql
Daten konsistent halten
MySQL und andere RDBMS bieten die Möglichkeit, Foreign-Key-Constraints auszuschalten. Ich halte das für eine schlechte Idee. Ich kenne aus der Praxis ein Szenario, bei dem FK-Constraints ausgeschaltet wurden, um den Import von Daten zu ermöglichen. Die Daten lagen in unterschiedlichen … Weiterlesen
Veröffentlicht unter Allgemein
Verschlagwortet mit foreign key, Konsistenz, mysql, sql
Kommentare deaktiviert für Daten konsistent halten
Refactoring php
Das erste aysx-Projekt wird sein, ein Warenwirtschaftssystem aufzumöbeln, das anno tuck in php programmiert wurde. Teile des Codes sind prozedural, andere objektorientiert. Aufgabe ist, einen Schwung neue Features einzubauen und den Code mit aktuellem PHP und MySQL kompatibel zu machen. … Weiterlesen
Veröffentlicht unter Allgemein
Kommentare deaktiviert für Refactoring php
Hallo Welt, hier ist aysx. Ich hoffe, neben meiner Software-Tätigkeit im öffentlichen Dienst und dem bisschen Freelance-Coding für aysx Zeit zu finden, hier ein paar Gedanken niederzulegen, die vielleicht von allgemeinem Interesse sind. Im Laufe der Jahre habe ich einige … Weiterlesen
4. Oktober 2013
Kommentare deaktiviert für Hallo Welt!