我想在表中插入如下数据:
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');
曾经我问过类似的问题,但后来我意识到,这不是一个好主意,添加前缀/后缀与自动增量字段
better u change your table structure
emp_id emp_uniq_id emp_data
----------------------------------
1 emp001 Amit
2 emp002 Ajit
3 emp003 Arijit
和u可以使用下面的查询
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