I am trying to create a unique ID for each record based on the date the record is created. Example, if the record is created today, I want the key to be 20101130XX where XX
From dev.mysql.com: example-auto-increment.html
For MyISAM and BDB tables you can specify AUTO_INCREMENT on a secondary column in a multiple-column index. In this case, the generated value for the AUTO_INCREMENT column is calculated as MAX(auto_increment_column) + 1 WHERE prefix=given-prefix
. This is useful when you want to put data into ordered groups.
So, make 2 columns on the table, one dateEntered and one (auto_incremented) id, like this:
CREATE TABLE yourTable (
dateEntered DATE NOT NULL,
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (dateEntered, id)
) ENGINE=MyISAM;
If you don't use ISAM but InnoDB, I think you'll have to write your own trigger that implements this behaviour.