creating primary key based on date

前端 未结 4 593
南方客
南方客 2020-12-07 05:05

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

4条回答
  •  醉梦人生
    2020-12-07 05:37

    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.

提交回复
热议问题