我想將數據插入到類似下面的表格:MySQL問題:如何插入唯一的非整數員工ID?
emp_id emp_data
----------------------------
emp001 Amit
emp002 Ajit
emp003 Arijit
在這裏所有的EMP_ID數據應該是唯一的,但應遵循EMP的模式***。請幫忙。我是db的新手。
我想將數據插入到類似下面的表格:MySQL問題:如何插入唯一的非整數員工ID?
emp_id emp_data
----------------------------
emp001 Amit
emp002 Ajit
emp003 Arijit
在這裏所有的EMP_ID數據應該是唯一的,但應遵循EMP的模式***。請幫忙。我是db的新手。
create table employee (
empnum varchar(10) primary key
, empname varchar(60)
);
insert into employee values ('emp001', 'Employee 1');
insert into employee values ('emp002', 'Employee 2');
insert into employee values ('100emp', 'Employee 3');
有一次我問similar question,但後來我意識到,這不是好主意,添加前綴/後綴有自動遞增場
更好ü改變你的表結構
emp_id emp_uniq_id emp_data
----------------------------------
1 emp001 Amit
2 emp002 Ajit
3 emp003 Arijit
和你可以使用下面的查詢
mysql_query("UPDATE table_name SET emp_uniq_id=CONCAT('emp', ".str_pad(emp_id,3,'0',STR_PAD_LEFT)."))";
如果emp
前綴將保持不變,將數據庫中的列從數據庫中提取出來時,將其存儲爲應用程序邏輯並進行前置處理會更有意義。
無論哪種方式,你只能夠AUTO_INCREMENT
數字列。
話雖如此,你可以將你的主鍵,如下所示:
CREATE TABLE animals (
grp ENUM('fish','mammal','bird') NOT NULL,
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (grp,id)
) ENGINE=MyISAM;
INSERT INTO animals (grp,name) VALUES
('mammal','dog'),('mammal','cat'),
('bird','penguin'),('fish','lax'),('mammal','whale'),
('bird','ostrich');
SELECT * FROM animals ORDER BY grp,id;
選擇的輸出將是:從在線文檔
+--------+----+---------+
| grp | id | name |
+--------+----+---------+
| fish | 1 | lax |
| mammal | 1 | dog |
| mammal | 2 | cat |
| mammal | 3 | whale |
| bird | 1 | penguin |
| bird | 2 | ostrich |
+--------+----+---------+
那兒剽竊:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
emp_id是否必須是一個字符串?使用auto_increment整數作爲主鍵會更簡單,更高效。 – samplebias 2011-04-13 02:54:26
這是在這裏回答http://stackoverflow.com/questions/3245429/autoincrement-of-table-id-using-string-combination-in-database-automatically – Chris 2011-04-13 03:08:15
注意,除非你有一個非常非常好的理由那樣做,你不應該做這樣的事情。 – Spyros 2011-04-13 03:39:00