2011-06-02 99 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傑克