Vreemd mysql update probleem

Pagina: 1
Acties:

  • sju
  • Registratie: Juni 2000
  • Laatst online: 21-05-2025

sju

rrradio

Topicstarter
Ik kom er net achter dat er een update van een bepaalde tabel een ander resultaat oplevert dan ik eigenlijk zou verwachten/willen. Ik doe bijvoorbeeld het volgende:
code:
1
UPDATE contract SET verleng_status = 'mail' WHERE id = 211;

Mijn verwachting is dan dat op de betreffende row de verleng_status kolom op 'mail' wordt gezet.

Dit is echter niet het enige dat er bij deze update veranderd wordt.
De tabel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
+----------------+------------------+------+-----+----------+----------------+
| Field          | Type             | Null | Key | Default  | Extra          |
+----------------+------------------+------+-----+----------+----------------+
| id             | int(10) unsigned |      | PRI | NULL     | auto_increment |
| klant_id       | int(10) unsigned |      |     | 0        |                |
| start_date     | timestamp(8)     | YES  |     | NULL     |                |
| end_date       | timestamp(8)     | YES  |     | 00000000 |                |
| prijs          | float            | YES  |     | NULL     |                |
| termijn        | int(10) unsigned | YES  |     | NULL     |                |
| opmerkingen    | text             | YES  |     | NULL     |                |
| kind           | varchar(15)      | YES  |     | NULL     |                |
| status         | varchar(50)      | YES  |     | NULL     |                |
| verleng_status | varchar(25)      | YES  |     | NULL     |                |
+----------------+------------------+------+-----+----------+----------------+

begin toestand:
code:
1
| 211 |        1 |   20050201 | 20100101 |     0 |      10 | testcontract1 | overboeking | open   | n/a            |

na de update:
code:
1
| 211 |        1 |   20050218 | 20100101 |     0 |      10 | testcontract1 | overboeking | open   | mail           |

Hij heeft keurig de verleng_status geupdate, maar helaas is de start_date ook veranderd, en wel naar de huidige datum. Heeft iemand enig idee waardoor dit komt? Het betreft een innoDB tabel.

Hopelijk weet iemand wat de oorzaak is, want het is vervelend op deze manier

blaat? BLAAAAAAAAT!


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22:03

Kees

Serveradmin / BOFH / DoC
A TIMESTAMP column is useful for recording the date and time of an INSERT or UPDATE operation. The first TIMESTAMP column in a table is automatically set to the date and time of the most recent operation if you don't assign it a value yourself. You can also set any TIMESTAMP column to the current date and time by assigning it a NULL value.
http://dev.mysql.com/doc/...d-time-type-overview.html

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • sju
  • Registratie: Juni 2000
  • Laatst online: 21-05-2025

sju

rrradio

Topicstarter
Ik heb geprobeerd om start_date default op '00000000' te zetten, maar dat mag blijkbaar niet. Is er nog een andere manier om deze functionaliteit uit te zetten?
Op die pagina die jij gaf stond het helaas niet. Ik vraag me af of het uberhaupt wel kan. Misschien moet ik maar een ander type proberen.

blaat? BLAAAAAAAAT!


  • efd
  • Registratie: Juli 2000
  • Laatst online: 18-10-2024

efd

Je zou eventueel een veld kunnen invoegen met TIMESTAMP voor je huidige velden met TIMESTAMP. Die wordt dan geupdate, de anderen velden blijven unaffected.

Het is nou eenmaal zo.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Waarom gebruik je dan TIMESTAMP? Zoals je het nu werkt is 'by design'. Je moet niet een timestamp gebruiken als je een datum wilt bijhouden. je moet gewoon een DATETIME gebruiken.

Oops! Google Chrome could not find www.rijks%20museum.nl