: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');
iがsimilar questionを尋ねたら、それ以降の私は、これはより良い
uはあなたのテーブル構造を変更する自動インクリメントフィールドに接頭辞/接尾辞を追加することは良い考えではない、という認識
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 |
+--------+----+---------+
Cribbed:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
emp_idは文字列でなければなりませんか? auto_increment整数を主キーとして使用する方が簡単で効率的です。 – samplebias
これはここに答えています。あなたが非常に(非常に)正当な理由がない限り、これは、ここで答えています。http://stackoverflow.com/questions/3245429/autoincrement-of-table-id-using-string-combination-in-database-automatically – Chris
そういうことはしないでください。 – Spyros