[mysql] primary keys updaten

Pagina: 1
Acties:
  • 202 views sinds 30-01-2008

  • angl2k
  • Registratie: Maart 2001
  • Laatst online: 29-04 10:53
ik heb in mysql een tabel wizschermen

code:
1
schermid tinyint 2


deze staan op volgorde vanaf 1 t/m 100.

echter nu moet er een scherm worden ingevoegd na schermid 10. de query

code:
1
UPDATE wizschermen SET schermid = schermid + 1 WHERE schermid > 10


werkt niet omdat ik kan duplicate entries krijgt. mysql werkt dus de entries af van 1 optellend naar 100

hoe kan ik zorgen dat mysql eerst 100 naar 101 veranderd en dan 'aflopend' update? de gebruikte mysql versie is 3.23.56 en ondersteunt dus geen order by in de update query :(

[edit]
ik heb alleen update/insert/delete rechten voor de database. :(

[ Voor 4% gewijzigd door angl2k op 28-08-2003 21:06 ]


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 31-03 15:20
SQL:
1
2
UPDATE wizschermen SET schermid = schermid + 101 WHERE schermid > 10;
UPDATE wizschermen SET schermid = schermid - 100 WHERE schermid > 10;

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • angl2k
  • Registratie: Maart 2001
  • Laatst online: 29-04 10:53
bigtree: daar dacht ik dus ook al aan maar de maximum waarde van de schermid kolom is 127 (tinyint :()

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 31-03 15:20
Geeezzzz. Beetje excellen dan maar?
SQL:
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
UPDATE wizschermen SET schermid = 101 WHERE schermid = 100;
UPDATE wizschermen SET schermid = 100 WHERE schermid = 99;
UPDATE wizschermen SET schermid = 99 WHERE schermid = 98;
UPDATE wizschermen SET schermid = 98 WHERE schermid = 97;
UPDATE wizschermen SET schermid = 97 WHERE schermid = 96;
UPDATE wizschermen SET schermid = 96 WHERE schermid = 95;
UPDATE wizschermen SET schermid = 95 WHERE schermid = 94;
UPDATE wizschermen SET schermid = 94 WHERE schermid = 93;
UPDATE wizschermen SET schermid = 93 WHERE schermid = 92;
UPDATE wizschermen SET schermid = 92 WHERE schermid = 91;
UPDATE wizschermen SET schermid = 91 WHERE schermid = 90;
UPDATE wizschermen SET schermid = 90 WHERE schermid = 89;
UPDATE wizschermen SET schermid = 89 WHERE schermid = 88;
UPDATE wizschermen SET schermid = 88 WHERE schermid = 87;
UPDATE wizschermen SET schermid = 87 WHERE schermid = 86;
UPDATE wizschermen SET schermid = 86 WHERE schermid = 85;
UPDATE wizschermen SET schermid = 85 WHERE schermid = 84;
UPDATE wizschermen SET schermid = 84 WHERE schermid = 83;
UPDATE wizschermen SET schermid = 83 WHERE schermid = 82;
UPDATE wizschermen SET schermid = 82 WHERE schermid = 81;
UPDATE wizschermen SET schermid = 81 WHERE schermid = 80;
UPDATE wizschermen SET schermid = 80 WHERE schermid = 79;
UPDATE wizschermen SET schermid = 79 WHERE schermid = 78;
UPDATE wizschermen SET schermid = 78 WHERE schermid = 77;
UPDATE wizschermen SET schermid = 77 WHERE schermid = 76;
UPDATE wizschermen SET schermid = 76 WHERE schermid = 75;
UPDATE wizschermen SET schermid = 75 WHERE schermid = 74;
UPDATE wizschermen SET schermid = 74 WHERE schermid = 73;
UPDATE wizschermen SET schermid = 73 WHERE schermid = 72;
UPDATE wizschermen SET schermid = 72 WHERE schermid = 71;
UPDATE wizschermen SET schermid = 71 WHERE schermid = 70;
UPDATE wizschermen SET schermid = 70 WHERE schermid = 69;
UPDATE wizschermen SET schermid = 69 WHERE schermid = 68;
UPDATE wizschermen SET schermid = 68 WHERE schermid = 67;
UPDATE wizschermen SET schermid = 67 WHERE schermid = 66;
UPDATE wizschermen SET schermid = 66 WHERE schermid = 65;
UPDATE wizschermen SET schermid = 65 WHERE schermid = 64;
UPDATE wizschermen SET schermid = 64 WHERE schermid = 63;
UPDATE wizschermen SET schermid = 63 WHERE schermid = 62;
UPDATE wizschermen SET schermid = 62 WHERE schermid = 61;
UPDATE wizschermen SET schermid = 61 WHERE schermid = 60;
UPDATE wizschermen SET schermid = 60 WHERE schermid = 59;
UPDATE wizschermen SET schermid = 59 WHERE schermid = 58;
UPDATE wizschermen SET schermid = 58 WHERE schermid = 57;
UPDATE wizschermen SET schermid = 57 WHERE schermid = 56;
UPDATE wizschermen SET schermid = 56 WHERE schermid = 55;
UPDATE wizschermen SET schermid = 55 WHERE schermid = 54;
UPDATE wizschermen SET schermid = 54 WHERE schermid = 53;
UPDATE wizschermen SET schermid = 53 WHERE schermid = 52;
UPDATE wizschermen SET schermid = 52 WHERE schermid = 51;
UPDATE wizschermen SET schermid = 51 WHERE schermid = 50;
UPDATE wizschermen SET schermid = 50 WHERE schermid = 49;
UPDATE wizschermen SET schermid = 49 WHERE schermid = 48;
UPDATE wizschermen SET schermid = 48 WHERE schermid = 47;
UPDATE wizschermen SET schermid = 47 WHERE schermid = 46;
UPDATE wizschermen SET schermid = 46 WHERE schermid = 45;
UPDATE wizschermen SET schermid = 45 WHERE schermid = 44;
UPDATE wizschermen SET schermid = 44 WHERE schermid = 43;
UPDATE wizschermen SET schermid = 43 WHERE schermid = 42;
UPDATE wizschermen SET schermid = 42 WHERE schermid = 41;
UPDATE wizschermen SET schermid = 41 WHERE schermid = 40;
UPDATE wizschermen SET schermid = 40 WHERE schermid = 39;
UPDATE wizschermen SET schermid = 39 WHERE schermid = 38;
UPDATE wizschermen SET schermid = 38 WHERE schermid = 37;
UPDATE wizschermen SET schermid = 37 WHERE schermid = 36;
UPDATE wizschermen SET schermid = 36 WHERE schermid = 35;
UPDATE wizschermen SET schermid = 35 WHERE schermid = 34;
UPDATE wizschermen SET schermid = 34 WHERE schermid = 33;
UPDATE wizschermen SET schermid = 33 WHERE schermid = 32;
UPDATE wizschermen SET schermid = 32 WHERE schermid = 31;
UPDATE wizschermen SET schermid = 31 WHERE schermid = 30;
UPDATE wizschermen SET schermid = 30 WHERE schermid = 29;
UPDATE wizschermen SET schermid = 29 WHERE schermid = 28;
UPDATE wizschermen SET schermid = 28 WHERE schermid = 27;
UPDATE wizschermen SET schermid = 27 WHERE schermid = 26;
UPDATE wizschermen SET schermid = 26 WHERE schermid = 25;
UPDATE wizschermen SET schermid = 25 WHERE schermid = 24;
UPDATE wizschermen SET schermid = 24 WHERE schermid = 23;
UPDATE wizschermen SET schermid = 23 WHERE schermid = 22;
UPDATE wizschermen SET schermid = 22 WHERE schermid = 21;
UPDATE wizschermen SET schermid = 21 WHERE schermid = 20;
UPDATE wizschermen SET schermid = 20 WHERE schermid = 19;
UPDATE wizschermen SET schermid = 19 WHERE schermid = 18;
UPDATE wizschermen SET schermid = 18 WHERE schermid = 17;
UPDATE wizschermen SET schermid = 17 WHERE schermid = 16;
UPDATE wizschermen SET schermid = 16 WHERE schermid = 15;
UPDATE wizschermen SET schermid = 15 WHERE schermid = 14;
UPDATE wizschermen SET schermid = 14 WHERE schermid = 13;
UPDATE wizschermen SET schermid = 13 WHERE schermid = 12;
UPDATE wizschermen SET schermid = 12 WHERE schermid = 11;
:P

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • whoami
  • Registratie: December 2000
  • Laatst online: 09:01
Als er nu eens 1 ding is, dat je nooit moet doen in een database, dan is het wel primary keys updaten.
Je haalt je alleen maar problemen op de hals.

https://fgheysels.github.io/


  • angl2k
  • Registratie: Maart 2001
  • Laatst online: 29-04 10:53
ok thx het werkte :)

ik vroeg me alleen af of t ook met een SQL query kon, maar dit kan ook

Verwijderd

whoami schreef op 28 augustus 2003 @ 21:22:
Als er nu eens 1 ding is, dat je nooit moet doen in een database, dan is het wel primary keys updaten.
Je haalt je alleen maar problemen op de hals.
OK... heeeeeeeele oude topic :-)

Maar ik was met de search aan het zoeken of het mogelijk was primary keys te updaten, en blijkbaar kan het.

Maar kan er iemand me zeggen waarom je dat best niet doet en waarom je daar problemen mee op de hals haalt ?

Ik moet namelijk in een kleine database van een 10.000 records een kleine 3000 updaten omdat die artikels van een andere leverancier gaan komen, en die artikelbase heeft als key de artikelcode... :/

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:51

gorgi_19

Kruimeltjes zijn weer op :9

Maar kan er iemand me zeggen waarom je dat best niet doet en waarom je daar problemen mee op de hals haalt ?
Omdat een key normaliter een nietszeggend iets is, waarmee je relaties legt en verder geen enkele waarde heeft.

Voorbeeld:
Tabel User
UserID PK
Username
......

Tabel Courses
CourseID PK
Coursename

Tabel CourseUsers
UserID
CourseID

Je verandert een PK van Courses, dan komt CourseUsers er niet meer mee overeen en dus ook niet User / courses.

Maar het topic is idd erg oud; grote kans dat andere mensen op eerdere posts gaan reageren en je dus een verwarde discussie krijgt. :) Een eigen topic, volgens de quickstart, lijkt me een betere oplossing, mocht bovenstaand niet volledig zijn. :)

[ Voor 56% gewijzigd door gorgi_19 op 07-08-2004 16:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:51

gorgi_19

Kruimeltjes zijn weer op :9

[rml][ mysql] primary keys updaten[/rml] heb je
gelocked. Ik wou er nog bijzetten dat het wel in een query kon, namelijk
met
"ORDER BY id DESC". Misschien een nuttige toevoeging, voor mensen die
ooit unieke velden moeten updaten.

(Laten we hopen dat ze geen keys gaan modden.)
Ik kreeg nog een berichtje van Grijze Vos; deze wilde dit nog graag toevoegen aan voor het eigenlijke probleem in de topicstart :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.