2011-06-02 98 views
2

嘿,我正在创建一个应用程序开票(计算机生成的帐单)。 我有一个表sales_log其中ref no。列设置为auto_increment.i没有分配起始值。我的意思是如果裁判没有。的第一个账单是101,那么我应该自动得到102..103 ...等休息...我只是不知道如何改变表约束和设置该列的起始值。 这里是我的表的说明将约束添加到mysql中的列

mysql> desc sales_log; 
+----------+---------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra   | 
+----------+---------+------+-----+---------+----------------+ 
| date  | date | YES |  | NULL |    | 
| item_id | int(11) | YES | MUL | NULL |    | 
| C_Id  | int(11) | YES | MUL | NULL |    | 
| Quantity | double | YES |  | NULL |    | 
| Ref  | int(11) | NO | PRI | NULL | auto_increment | 
| price | double | YES |  | NULL |    | 
+----------+---------+------+-----+---------+----------------+ 

回答

3

http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html

首先 除1以外的AUTO_INCREMENT值,可以设置与CREATE TABLE或ALTER TABLE该值 ,像 这:

ALTER TABLE sales_log AUTO_INCREMENT = 101; 
+0

看起来是正确的,但MySQL的>改变表sales_log REF AUTO_INCREMENT = 100; 错误1064(42000):您的SQL语法错误;检查手册, 对应于您的MySQL服务器版本为正确的语法使用附近'ref a uto_increment = 100'在第1行 – 2011-06-02 05:52:29

+0

“ref”不属于那里 - – tofutim 2011-06-02 05:53:54

+0

nope ...嘿,我做错了什么。 ..现在得到了它......谢谢.. – 2011-06-02 05:57:15

2

要设置AUTO_INCREM ENT回到1(例如),执行此操作:

ALTER TABLE sales_log AUTO_INCREMENT = 1 
2

ALTER TABLE sales_log AUTO_INCREMENT = 101;

0

CREATE TABLE users (user_id int NOT NULL, name varchar(50),PRIMARY KEY (user_id));

NSERT INTO users VALUES (1, 'Bob');

INSERT INTO users VALUES (2, 'Joe');

INSERT INTO users VALUES (3, 'Paul');

ALTER TABLE users MODIFY user_id int NOT NULL AUTO_INCREMENT;

ALTER TABLE users AUTO_INCREMENT = 6000;

INSERT INTO users (name) VALUES ('Keith');

INSERT INTO users (name) VALUES ('Steve');

INSERT INTO users (name) VALUES ('Jack');

SELECT * FROM users;

user_id name

1鲍勃
2乔
3保
6000基思

6001史蒂夫

6002杰克