Trong hướng dẫn này, bạn sẽ học cách sử dụng hàm MySQL LAST_INSERT_ID () để trả về số nguyên được tạo tự động đầu tiên được chèn thành công cho cột AUTO_INCREMENT.

Bạn đang xem : mysql insert return id

Tóm tắt : trong này hướng dẫn, bạn sẽ học cách sử dụng hàm MySQL LAST_INSERT_ID () để trả về số nguyên được tạo tự động đầu tiên được chèn thành công cho cột AUTO_INCREMENT .

Giới thiệu về hàm LAST_INSERT_ID () trong MySQL

Trong thiết kế cơ sở dữ liệu, chúng tôi thường sử dụng khóa thay thế để tạo các giá trị số nguyên duy nhất cho < cột span> khóa chính của bảng bằng cách sử dụng thuộc tính AUTO_INCREMENT :

 

TẠO

TABLE

table_name (

id

INT

AUTO_INCREMENT, ..., CHÍNH

KEY

(

id

) );

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Khi bạn chèn một hàng vào bảng mà không chỉ định giá trị cho cột id , MySQL tự động tạo một số nguyên duy nhất tuần tự cho cột id . < / p>

Hàm LAST_INSERT_ID () trả về số nguyên được tạo tự động đầu tiên ( BIGINT UNSIGNED ) được chèn thành công cho AUTO_INCREMENT cột.

Nếu bạn chèn nhiều hàng vào bảng bằng một câu lệnh INSERT , thì LAST_INSERT_ID () hàm chỉ trả về giá trị được tạo tự động đầu tiên.

Nếu việc chèn không thành công, kết quả trả về bởi LAST_INSERT_ID () vẫn không thay đổi.

LAST_INSERT Hàm _ID () hoạt động dựa trên nguyên tắc không phụ thuộc vào máy khách. Điều đó có nghĩa là giá trị được trả về bởi hàm LAST_INSERT_ID () cho một ứng dụng khách cụ thể là giá trị được tạo bởi ứng dụng khách đó chỉ để đảm bảo rằng mỗi ứng dụng khách có thể nhận được ID duy nhất của riêng mình.

MySQL LAST_INSERT_ID ví dụ về hàm

Hãy xem ví dụ về việc sử dụng hàm LAST_INSERT_ID của MySQL.

A) Sử dụng MySQL LAST_INSERT_ID () hàm lấy giá trị khi chèn một hàng vào bảng

Đầu tiên, tạo một bảng mới có tên là messages < / code> để thử nghiệm. Trong bảng messages , chúng tôi đặt thuộc tính AUTO_INCREMENT cho cột id .

 

TẠO

BẢNG

(

id

INT

AUTO_INCREMENT PRIMARY

KEY

, description

VARCHAR

(

250

)

KHÔNG

KHÔNG ĐỦ

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ hai , chèn một hàng mới vào bảng messages .

 

CHÈN

VÀO

tin nhắn (mô tả)

GIÁ TRỊ

(

'MySQL last_insert_id'

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ ba, sử dụng hàm MySQL LAST_INSERT_ID để lấy giá trị được chèn của cột id :

 

CHỌN

LAST_INSERT_ID

();

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Ví dụ về hàm MySQL LAST_INSERT_ID

Thứ tư, cố gắng chèn giá trị null vào cột description :

 

CHÈN

VÀO

tin nhắn (mô tả )

GIÁ TRỊ

(

NULL

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

MySQL đã phát hành lỗi sau:

 

Mã Lỗi: 1048. Cột 'mô tả' không được rỗng

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Cuối cùng, hãy sử dụng hàm LAST_INSERT_ID để nhận giá trị được chèn tự động cuối cùng:

 

CHỌN

LAST_INSERT_ID

();

Mã ngôn ngữ:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Ví dụ về hàm MySQL LAST_INSERT_ID

Kết quả không thay đổi.

B) Sử dụng MySQL L Hàm AST_INSERT_ID () để nhận giá trị khi chèn nhiều hàng vào bảng

Đầu tiên, hãy chèn ba hàng vào bảng messages :

 

CHÈN

VÀO tin nhắn (mô tả)

GIÁ TRỊ

(

'Chèn nhiều hàng'

), (

'LAST_INSERT_ID () ví dụ'

), (

'MySQL AUTO_INCREMENT'

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ hai, dữ liệu truy vấn tạo thành bảng tin nhắn :

 

CHỌN

*

TỪ

tin nhắn;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ ba, sử dụng hàm LAST_INSERT_ID () để nhận giá trị được chèn: < / p>

 

CHỌN

LAST_INSERT_ID

();

Ngôn ngữ mã:

SQL (Có cấu trúc Ngôn ngữ truy vấn)

(

sql

)

Hàm MySQL LAST_INSERT_ID - chèn nhiều hàng

Như bạn có thể thấy rõ từ đầu ra, LAST_INSERT_ID () hàm trả về giá trị đã tạo của hàng đầu tiên được chèn thành công, không phải hàng cuối cùng.

C) Sử dụng hàm MySQL LAST_INSERT_ID () trong một thủ tục được lưu trữ

Đầu tiên, tạo hai bảng tài khoản điện thoại để kiểm tra:

 

TẠO

TABLE

tài khoản ( account_id

INT

AUTO_INCREMENT CHÍNH

KEY

, first_name

VARCHAR

(

255

)

KHÔNG

KHÔNG ĐẦY ĐỦ

, last_name

VARCHAR

(

255

)

KHÔNG

KHÔNG ĐỦ

);

TẠO

BẢNG

điện thoại ( phone_id

INT

AUTO_INCREMENT, account_id

INT

NOT

KHÔNG ĐỦ

, phone

VARCHAR

(

25

)

KHÔNG

KHÔNG ĐẦY ĐỦ

, description

VARCHAR

(

255

)

KHÔNG

KHÔNG ĐẦY ĐỦ

, CHÍNH

KEY

(phone_id, account_id),

NƯỚC NGOÀI

TỪ KHÓA

(account_id)

TÀI LIỆU THAM KHẢO

tài khoản (account_id) );

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ hai , tạo quy trình đã lưu trữ để chèn tài khoản có số điện thoại vào cả hai bảng:

 

DELIMITER $$

TẠO

THỦ TỤC

CreateAccount ( fname

VARCHAR

(

255

), lname

VARCHAR

(

255

), phone

VARCHAR

(

25

), mô tả

VARCHAR

(

255

) )

BẮT ĐẦU

KHAI BÁO

l_account_id

INT

DEFAULT

0

;

BẮT ĐẦU

GIAO DỊCH

;

CHÈN

VÀO

tài khoản (first_name, last_name)

GIÁ TRỊ

(fname, lname);

SET

l_account_id =

LAST_INSERT_ID

(); NẾU l_account_id & gt; 0 THÌ

CHÈN

VÀO

điện thoại (account_id, phone, description)

GIÁ TRỊ

(l_account_id, điện thoại, mô tả);

CAM KẾT

; KHÁC

QUAY LẠI

;

HẾT

NẾU

;

HẾT

$$ DELIMITER;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

thủ tục được lưu trữ chèn một hàng vào bảng tài khoản , lấy id tài khoản bằng hàm LAST_INSERT_ID () và sử dụng id tài khoản này để chèn điện thoại vào điện thoại bảng . Một hàng trong bảng điện thoại chỉ nên tồn tại nếu có một hàng tương ứng trong bảng tài khoản , do đó, chúng tôi đặt cả hai phần chèn vào một giao dịch .

Thứ ba, gọi thủ tục đã lưu trữ CreateAccount để tạo tài khoản mới với số điện thoại:

 

GỌI

CreateAccount (

'John'

,

'Doe'

,

'(408) -456-4567'

,

'Liên hệ Khẩn cấp'

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ tư , truy vấn dữ liệu từ bảng tài khoản :

 

CHỌN

*

TỪ

tài khoản;

Ngôn ngữ mã: < / p>

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql < / p>

)

MySQL LAST_INSERT_ID - Bảng tài khoản thủ tục được lưu trữ

điện thoại bảng:

 

CHỌN

*

TỪ

điện thoại;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

MySQL LAST_INSERT_ID - Bảng điện thoại thủ tục được lưu trữ

Nó hoạt động như mong đợi.

Cuối cùng, cố gắng tạo một tài khoản mới với giá trị của tên rỗng:

 

CALL

CreateAccount (

'Jane'

,

null

,

'(408) -456-1111'

,

'Liên hệ khẩn cấp'

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

MySQL đã phát hành lỗi:

 

Mã lỗi: 1048. Cột 'last_name' không được rỗng

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Trong hướng dẫn này, bạn đã học cách sử dụng hàm MySQL LAST_INSERT_ID để trả về số nguyên được tạo tự động đầu tiên được chèn thành công cho AUTO_INCREMENT cột.

Hướng dẫn này có hữu ích không?


Xem thêm những thông tin liên quan đến chủ đề mysql chèn trả lại id

How To Reset Table Auto Increment Column Id In MySQL (PHPMyAdmin)

alt

  • Tác giả: Haritha Computers & Technology
  • Ngày đăng: 2017-03-08
  • Đánh giá: 4 ⭐ ( 4802 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: mysql mysqlresetautocolumn phpmyadmin
    Find out how to MySQL table reset auto increment column id (PHPMyAdmin) server.

Cách tạo, kiểm tra và thay đổi cột Identity trên Microsoft SQL Server

  • Tác giả: thuthuat.taimienphi.vn
  • Đánh giá: 3 ⭐ ( 7684 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cach tao kiem tra va thay doi cot Identity tren Microsoft SQL Server, Cách tạo, kiểm tra và thay đổi cột Identity trên Microsoft SQL Server

Làm thế nào sử dụng PHP để insert into MySQL Database dữ liệu

  • Tác giả: www.hostinger.vn
  • Đánh giá: 4 ⭐ ( 5665 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài hướng dẫn cách sử dụng PHP để INSERT INTO MYSQL DATABASE bằng MySQLi method và PHP Data Object. Có code snippets để copy/paste

[MySQL 24] View - Khung Nhìn

  • Tác giả: www.codelean.vn
  • Đánh giá: 3 ⭐ ( 3628 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: CodeLean.vn là nơi chia sẻ kiến thức của những người học, làm và dạy trong lĩnh vực công nghệ thông tin.

CÁCH SỬ DỤNG TỰ ĐỘNG TĂNG (AUTO_INCREMENT) TRONG MySQL

  • Tác giả: gitiho.com
  • Đánh giá: 5 ⭐ ( 2451 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tự động tăng là một chức năng hoạt động trên các loại dữ liệu số. Nó tự động tạo các giá trị số liên tiếp mỗi khi dữ liệu được chèn vào bảng

Chèn ID cuối cùng trong MySQL

  • Tác giả: laptrinhvienphp.com
  • Đánh giá: 5 ⭐ ( 4466 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 3 cách lấy ID cuối cùng trong bảng CSDL MySQL để giúp cho cả người mới bắt đầu học lập trình PHP cũng có thể hiểu.

VIEW, FUNCTION & STORE PROCEDURE VÀ TRIGGER TRONG MYSQL

  • Tác giả: viblo.asia
  • Đánh giá: 5 ⭐ ( 1604 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: database sử dụng trong ví dụ

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Top 4 Free Windows 10 Video Editors You Can Try 2021

By ads_php