2011-09-26 38 views
7

Tôi đang cố gắng tạo bảng trong sql bằng PHP nhưng tôi không chắc chắn cách đặt giá trị ban đầu cho trường tăng tự động.đặt giá trị gia tăng tự động ban đầu cho bảng mysql

Đây là những gì tôi có cho đến nay:

function create_table($db_host,$db_user,$db_pswrd,$db_name){ 

$connect = mysql_connect($db_host,$db_user,$db_pswrd) or die(mysql_error()); 

mysql_select_db($db_name, $connect); 
$sql = "CREATE TABLE MY_TABLE 
(
table_id int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(table_id), 
table_1 varchar(45), 
table_2 varchar(45), 
table_3 varchar(999), 
table_4 varchar(45) 
)"or die(mysql_error()); 

mysql_query($sql,$connect)or die(mysql_error()); 

mysql_close($connect); 

} 

Vì vậy, tôi cần phải biết làm thế nào để thiết lập giá trị Auto Increment ban đầu trên bảng này, khi tạo?

Cảm ơn

+0

Đây là câu hỏi liên quan đến SQL chứ không phải PHP. –

+0

Cột nào được tăng tự động? –

+0

Tôi cần biết cách thực hiện, trong PHP ....... –

Trả lời

20

Nếu bạn không có cột auto-increment trong bảng được nêu ra:

$sql = "ALTER TABLE MY_TABLE ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    ADD INDEX (id);"; 

Sau đó, để thiết lập các tính năng tự động tăng giá trị bắt đầu:

$sql = "ALTER TABLE MY_TABLE AUTO_INCREMENT = 111111;"; 

Tiềm năng trùng lặp của this post.

+1

Tôi đã đọc ở đây (http://tycoontalk.freelancer.com/php-forum/32507-reset-auto-increment-in-mysql.html) rằng giá trị của tự động có thể thấp đến mức bạn muốn và mysql sẽ tìm thấy id có sẵn tiếp theo (tức là nó sẽ không thất bại nếu bạn đặt tự động thấp hơn id higest) –

+0

Đặt giá trị auto_increment không thành công nếu bất kỳ giá trị 'id' nào lớn hơn giá trị được yêu cầu tồn tại. – Sebastian

4

Giả sử cột tự động tăng của bạn là người đầu tiên:

$sql = "CREATE TABLE MY_TABLE 
(
table_1 INT AUTO_INCREMENT, 
table_2 varchar(45), 
table_3 varchar(999), 
table_4 varchar(45) 
) AUTO_INCREMENT = 231"; 

Giá trị bắt đầu sẽ được, ở đây, 231.

Tôi đã thay đổi loại cột để INT, bởi vì bạn không thể sử dụng số VARCHAR để tăng tự động.

(và loại bỏ các or die(mysql_error()) trên dòng này btw, vô nghĩa của nó bởi vì nó chỉ là một sự sáng tạo biến, không phải là một truy vấn SQL được thực thi)

+1

Mã bạn đề xuất trả về lỗi: Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để biết cú pháp đúng để sử dụng gần '= 231)' ở dòng 10 –

+0

Sửa mã. Bạn cũng có thể sử dụng tài liệu mysql. –

+0

Mã đã sửa của bạn vẫn tạo ra lỗi, bạn không thể tự động tăng trên khóa không. –

Các vấn đề liên quan