RE: Avoiding TIMESTAMP

2007-05-26 Thread Tim Lucia
> -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]



Avoiding TIMESTAMP

2007-05-26 Thread Miguel Cardenas
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...

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]