Tìm hiểu MySQL – CHÈN với AUTO_INCREMENT + LAST_INSERT_ID ()

Bạn đang xem: chèn vào số tự động mysql

Ví dụ

Khi một bảng có AUTO_INCREMENT PRIMARY KEY , thông thường một bảng không chèn vào cột đó. Thay vào đó, hãy chỉ định tất cả các cột khác, sau đó hỏi id mới là gì.

  TẠO BẢNG t (
    id SMALLINT UNSIGNED AUTO_INCREMENT NOT NULL,
    đây ...,
    cái đó ...,
    KHÓA CHÍNH (id));

INSERT INTO t (this, that) VALUES (..., ...);
CHỌN LAST_INSERT_ID () INTO @id;
INSERT INTO another_table (..., t_id, ...) VALUES (..., @id, ...);
 

Lưu ý rằng LAST_INSERT_ID () được liên kết với phiên, vì vậy ngay cả khi nhiều kết nối đang chèn vào cùng một bảng, mỗi kết nối sẽ nhận được id riêng của nó.

API máy khách của bạn có thể có một cách thay thế để lấy LAST_INSERT_ID () mà không thực sự thực hiện SELECT và chuyển lại giá trị cho máy khách thay vì để nó trong một @variable bên trong MySQL. Như vậy thường tốt hơn.

Dài hơn, chi tiết hơn, ví dụ

Cách sử dụng “bình thường” của IODKU là để kích hoạt “khóa trùng lặp” dựa trên một số khóa UNIQUE , không phải AUTO_INCREMENT PRIMARY KEY . Sau đây minh chứng như vậy. Lưu ý rằng nó không cung cấp id trong INSERT.

Thiết lập các ví dụ để làm theo:

  TẠO BẢNG Iodku (
    id INT AUTO_INCREMENT NOT NULL,
    tên VARCHAR (99) KHÔNG ĐỦ,
    misc INT NOT NULL,
    KHÓA CHÍNH (id),
    DUY NHẤT (tên)
) ENGINE = InnoDB;

CHÈN VÀO iodku (tên, khác)
    GIÁ TRỊ
    ('Leslie', 123),
    ('Sally', 456);
Truy vấn OK, 2 hàng bị ảnh hưởng (0,00 giây)
Hồ sơ: 2 bản sao: 0 Cảnh báo: 0
+ ---- + -------- + ------ +
| id | tên | linh tinh |
+ ---- + -------- + ------ +
| 1 | Leslie | 123 |
| 2 | Sally | 456 |
+ ---- + -------- + ------ +
 

Trường hợp IODKU thực hiện “cập nhật” và LAST_INSERT_ID () truy xuất id :

  INSERT INTO iodku (name, misc)
    GIÁ TRỊ
    ('Sally', 3333) - nên cập nhật
    TRÊN CẬP NHẬT KHÓA DUPLICATE - `tên` sẽ kích hoạt" khóa trùng lặp "
    id = LAST_INSERT_ID (id),
    misc = GIÁ TRỊ (misc);
CHỌN LAST_INSERT_ID (); - nhận giá trị hiện có
+ ------------------ +
| LAST_INSERT_ID () |
+ ------------------ +
| 2 |
+ ------------------ +
 

Trường hợp IODKU thực hiện “chèn” và LAST_INSERT_ID () truy xuất id :

  INSERT INTO iodku (name, misc)
    GIÁ TRỊ
    ('Dana', 789) - Nên chèn
    CẬP NHẬT KHÓA DUPLICATE
    id = LAST_INSERT_ID (id),
    misc = GIÁ TRỊ (misc);
CHỌN LAST_INSERT_ID (); - nhận giá trị mới
+ ------------------ +
| LAST_INSERT_ID () |
+ ------------------ +
| 3 |
+ ------------------ +
 

Nội dung bảng kết quả:

  SELECT * FROM iodku;
+ ---- + -------- + ------ +
| id | tên | linh tinh |
+ ---- + -------- + ------ +
| 1 | Leslie | 123 |
| 2 | Sally | 3333 | - IODKU đã thay đổi điều này
| 3 | Dana | 789 | - IODKU đã thêm cái này
+ ---- + -------- + ------ +
 

Xem Thêm  Mảng chuỗi trong Java - tạo mảng chuỗi java


Xem thêm những thông tin liên quan đến chủ đề chèn vào mysql tăng tự động

mysql tutorial for beginners (5/8) : CRUD

  • Tác giả: Safaa Al-Hayali
  • Ngày đăng: 2016-01-19
  • Đánh giá: 4 ⭐ ( 3763 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: mysql tutorial for beginners (5/8) : CRUD

    To add data to a table, use the INSERT command. Let’s see this in action by populating the table students with the data.

    INSERT INTO students, this line, tells MySQL where to insert the following data.
    Then, within parentheses, the four column names are listed—id_studnet, name, surname, and email—all separated by commas. This tells MySQL that these are the fields into which the data is to be inserted.
    You could skip fields that are autoincremented, and fields with a default value if you wish to use that same default value.
    Since id_student is autoincremented field, there is no need to specify value for it.

    The second line of each INSERT command contains the keyword VALUES followed by three strings within parentheses, and separated by commas. This supplies MySQL with the three values to be inserted into the columns previously specified.

    Remember this, each item of data will be inserted into the corresponding column, in a one-to-one correspondence.
    If you accidentally listed the columns in a different order from the data, the data would go into the wrong columns. And the number of columns must match the number of data items.
    INSERT INTO students (name, surname, email) VALUES
    (‘Safaa’, ‘Alaa’, ‘safaa.alaa@koyauniversity.org’);
    Now, to display the table’s contents type the following Command.
    SELECT * FROM students;
    Don’t worry about the SELECT command for now—we’ll cover it later before the end of this tutorial.

    Now, to update existing data, use UPDATE Command:
    Followed by table name “students”,
    SET this keyword is used to specify which field will be updated?
    In this case, all entries in the table will be updated, because, I didn’t provide a condition, that will match the elements you want to update,

    WHERE keyword is used as condition, that will match all the elements you want to update, and it will change the specified columns for all the matches found.

    The WHERE keyword is very powerful, and important to enter correctly; an error could lead a command to the wrong rows (or have no effect in cases where nothing matches the WHERE clause). WHERE Clause considered to be the heart and soul of SQL.

    Also, if you do not provide a limit, all matches will be updated. So, the LIMIT qualifier enables you to choose how many rows to return or update or delete in a query, and where in the table to start returning, deleting or updating them.

    UPDATE students SET surname = “AL-Hayali” WHERE name
    =”Safaa” LIMIT 1

    When you need to remove a row from a table, use the DELETE command. Its syntax is similar to the SELECT command and allows you to narrow down the exact row or rows to delete using qualifiers such as WHERE and LIMIT.

    Let’s remove the entry whose surname is AL-Hayali:
    DELETE FROM students WHERE surname = “AL-HAYALI”

    This example issues a DELETE command for all rows whose surname column contains the string AL-Hayali, so, it’s better to limit the result to one entry.

    So far, we’ve created a MySQL database and tables, populated them with data. Now it’s time to look at how these searches are performed, and the various commands and qualifiers available.
    The operation you will use more often is called SELECT. A SELECT is used to look for information in one or more tables that matches specific criteria.

    The basic syntax is as follows:
    SELECT something FROM tablename;
    The something can be an * (asterisk), which means every column, or you can choose to select only certain columns.
    SELECT surname,name FROM students;

    ORDER BY sorts returned results by one or more columns in ascending or descending order.
    Note that an ORDER BY statement can accept several table fields that allow you to create several levels of ordering. For example, ORDER BY surname, name
    ASC would do a sorting of the data by surname, and if there were several entries with the same surname, those entries would be sorted by name.

    The GROUP BY section allows you to group results by a specific field. Which is good for retrieving information about a group of data. For example, if you want to know how many students have the surname AL-Hayali, you can issue the following query:
    SELECT surname, COUNT(surname) FROM students GROUP BY surname HAVING surname = “AL-HAYALI”;

    The option HAVING is quite similar to WHERE but runs at the end of the query. The HAVING field allows you to use functions, whereas WHERE does not.

    In the next tutorial, we will learn about indexes, the types of indexes, and the important role of the indexes.

    Subscribe for more:
    —————————————————————————-
    https://www.youtube.com/subscription_center?add_user=saf3al2a

    SWE.Safaa Al-Hayali – saf3al2a

Làm cách nào để bắt đầu tăng tự động từ một điểm cụ thể trong MySQL?

  • Tác giả: vn.wsxdn.com
  • Đánh giá: 4 ⭐ ( 6028 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

SEQUENCE – Dãy số tăng tự động – Deft Blog

  • Tác giả: shareprogramming.net
  • Đánh giá: 5 ⭐ ( 7751 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: SEQUENCE là một tập hợp các số nguyên được tạo thứ tự theo yêu cầu. Các SEQUENCE thường được sử dụng trong cơ sở dữ liệu vì đáp ứng yêu cầu

Thêm AUTO_INCREMENT trong table mysql phpmyadmin

  • Tác giả: vfo.vn
  • Đánh giá: 3 ⭐ ( 6527 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: AUto increment là 1 tính năng rất phổ biến trong sql nó được sử dụng hầu hết cho tất cả các bạn để tăng ID 1 cách tự động dễ dàng trong việc insert cũng như…

Câu lệnh INSERT trong MySQL

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 3109 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Câu lệnh INSERT trong MySQL được sử dụng để chèn dữ liệu vào bảng. INSERT INTO ten_bang(ten_truong_1, ten_truong_2, … ten_truong_n) VALUES ( gia_tri_1,…

Cách sử dụng tính năng tự động tăng dần của MySQL

  • Tác giả: vi.softoban.com
  • Đánh giá: 4 ⭐ ( 4270 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tự động tăng là một thuộc tính rất quan trọng của MySQL. Khi một bảng yêu cầu một trường số sẽ tự động tăng để tạo một số tuần tự thì thuộc tính tự động tăng sẽ được sử dụng cho trường đó. Trường tăng tự động có thể được chỉ định làm khóa chính hoặc khóa duy nhất cho bảng nếu được yêu cầu. Cách thuộc tính này hoạt động trong các bảng MySQL được hiển thị trong bài viết này.

Cách lấy id tăng tự động tiếp theo trong mysql

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 4643 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Sử dụng LAST_INSERT_ID()từ truy vấn SQL của bạn. Hoặc là Bạn cũng có thể sử dụng…

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  Nhận xét nhiều dòng Visual Studio C ++ - c ++ bình luận nhiều dòng

By ads_php