> -----Original Message-----
> From: Miguel Cardenas [mailto:[EMAIL PROTECTED]
> Sent: Saturday, May 26, 2007 8:21 AM
> To: mysql@lists.mysql.com
> Subject: Avoiding TIMESTAMP
> 
> Hello list
> 
> I need to solve a little problem but don't mind how, maybe you could
> suggest
> something.
> 
> I have a database which registers payments, records have a AUTO_INCREMENT
> field to assign a unique consecutive number associated to every payment,
> some
> other fields that store the amount, type of payment, etc. and another
> TIMESTAMP field that stores the date and time.
> 
> One of the fields contains the username for who received the payment and
> it is
> stored automatically by the software, so I can know who processed the
> payment, when, and all related information...
> 
> In the first stage of the system it worked only for 'localhost' and a
> unique
> test user, so all my current payments have registered that user. Now the
> system is able to select a host and a user, so I want to update the test
> user
> username for a real user, the database has already some records and would
> not
> like to reenter them by hand logging in as a real user.
> 
> My problem is this... if I update the username field, the TIMESTAMP
> updates
> the date and time of the payment to the current values and the payment
> date/time does not coincide then...

Are you inserting null into the timestamp column, either explicitly or
implicitly (like with a trigger)?  If I don't specify the timestamp column,
as shown below, it leaves it alone.  Using MyISAM on 5.0.24-NT, it works as
you want.  Assuming I've inferred your table definition, that is.

drop table if exists payment;
create table payment (
  id integer not null AUTO_INCREMENT primary key,
  username varchar(255) not null,
  amount FIXED(10,2),
  txtime timestamp not null
);

insert into payment (username, amount) values ('tjl', 1234567.89);
select * from payment;

-- note time
-- wait a little while

update payment set username='aal';
select * from payment;
-- same time...

update payment set username='tjl', txtime=null;
select * from payment;
-- updated time

Tim


> 
> Is there a way to update only that one field avoiding the TIMESTAMP
> update?
> One way is to update both fields, specifying the user and the same
> date/time
> by hand, but comes a new problem, payments have different date and time,
> so I
> would need to create a small routine to update records one by one with its
> particular date/time, but maybe there is another way to do it with a
> single
> command...
> 
> Thanks for any comment
> 
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to