Làm cách nào để đặt giá trị gia tăng tự động trong bàn làm việc của MySQL?

Tự động tăng cho phép một số duy nhất được tạo tự động khi một bản ghi mới được chèn vào bảng

Thường thì đây là trường khóa chính mà chúng tôi muốn được tạo tự động mỗi khi một bản ghi mới được chèn vào


Từ khóa AUTO_INCREMENT của MySQL

MySQL sử dụng từ khóa AUTO_INCREMENT để thực hiện tính năng tự động tăng

Theo mặc định, giá trị bắt đầu cho AUTO_INCREMENT là 1 và giá trị này sẽ tăng thêm 1 cho mỗi bản ghi mới

Câu lệnh SQL sau đây xác định cột "Personid" là trường khóa chính tăng tự động trong bảng "Persons"

TẠO BẢNG Người (
Personid int NOT NULL AUTO_INCREMENT,
Họ varchar(255) KHÔNG NULL,
FirstName varchar(255),
tuổi int,
KHÓA CHÍNH (Personid)
);

Để chuỗi AUTO_INCREMENT bắt đầu với một giá trị khác, hãy sử dụng câu lệnh SQL sau

THAY ĐỔI BẢNG Người AUTO_INCREMENT=100;

Khi chúng tôi chèn một bản ghi mới vào bảng "Người", chúng tôi KHÔNG phải chỉ định giá trị cho cột "Người" (một giá trị duy nhất sẽ được thêm tự động)

CHÈN VÀO Người (Tên, Họ)
GIÁ TRỊ ('Lars','Monsen');

Câu lệnh SQL trên sẽ chèn một bản ghi mới vào bảng "Persons". Cột "Personid" sẽ tự động được gán một giá trị duy nhất. Cột "FirstName" sẽ được đặt thành "Lars" và cột "LastName" sẽ được đặt thành "Monsen"

Hướng dẫn MySQL này giải thích cách tạo chuỗi bằng thuộc tính AUTO_INCREMENT trong MySQL với cú pháp và ví dụ

Sự miêu tả

Trong MySQL, bạn có thể tạo một cột chứa một dãy số (1, 2, 3, v.v.) bằng cách sử dụng thuộc tính AUTO_INCREMENT. Thuộc tính AUTO_INCREMENT được sử dụng khi bạn cần tạo một số duy nhất để đóng vai trò là khóa chính trong bảng

cú pháp

Cú pháp để tạo một chuỗi (hoặc sử dụng thuộc tính AUTO_INCREMENT) trong MySQL là

CREATE TABLE table_name
( 
  column1 datatype NOT NULL AUTO_INCREMENT,
  column2 datatype [ NULL | NOT NULL ],
  ...
);
AUTO_INCREMENTThuộc tính sử dụng khi bạn muốn MySQL tự động gán một dãy số cho một trường (về bản chất là tạo trường đánh số tự động). NULL hoặc NOT NULL Mỗi cột phải được xác định là NULL hoặc NOT NULL. Nếu tham số này bị bỏ qua, cơ sở dữ liệu sẽ coi NULL là giá trị mặc định

Ghi chú

  • Bạn có thể sử dụng hàm LAST_INSERT_ID để tìm giá trị cuối cùng được chỉ định bởi trường AUTO_INCREMENT

Thí dụ

Hãy xem một ví dụ về cách sử dụng một chuỗi hoặc thuộc tính AUTO_INCREMENT trong MySQL

Ví dụ

CREATE TABLE contacts
( contact_id INT(11) NOT NULL AUTO_INCREMENT,
  last_name VARCHAR(30) NOT NULL,
  first_name VARCHAR(25),
  birthday DATE,
  CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);

Ví dụ AUTO_INCREMENT MySQL này sẽ thay đổi giá trị tiếp theo trong trường AUTO_INCREMENT (nghĩa là. giá trị tiếp theo trong chuỗi) thành 50 cho trường contact_id trong bảng danh bạ

Xử lý hiệu quả dữ liệu tăng theo cấp số nhân luôn là một thách thức đối với bất kỳ doanh nghiệp đang phát triển nào. MySQL là một giải pháp đơn giản nhưng mạnh mẽ cung cấp Hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở có thể mở rộng, hiệu quả, đáng tin cậy và an toàn. Với sự hỗ trợ SQL chuẩn, bạn có thể nhanh chóng truy vấn, thao tác và thêm dữ liệu vào Bảng MySQL của mình

Một trong những nhiệm vụ quan trọng khi tạo bảng là đặt Khóa chính. Tính năng Auto Increment cho phép bạn thiết lập trường MySQL Auto Increment Primary Key. Điều này sẽ tự động tạo ra một chuỗi các số duy nhất bất cứ khi nào một hàng dữ liệu mới được chèn vào bảng

Trong bài viết này, bạn sẽ tìm hiểu cách thiết lập hiệu quả trường Khóa chính tăng tự động của MySQL bằng cách sử dụng tính năng Tự động tăng của MySQL

Mục lục

MySQL là gì?

MySQL Auto Increment Primary Key - MySQL LogoNguồn hình ảnh

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở phổ biến. Dữ liệu MySQL được lưu trữ trong các bảng bao gồm các hàng và cột. Được giới thiệu vào năm 1995, MySQL được phát triển, phân phối và duy trì hoàn toàn bởi Tập đoàn Oracle. Nhìn qua khía cạnh kỹ thuật, MySQL được viết bằng ngôn ngữ C và C++. MySQL tương thích với nhiều nền tảng như Microsoft Windows, Oracle Solaris, AIX, Symbian, Linux và macOS. Bạn có thể sử dụng các lệnh SQL để truy xuất, thay đổi hoặc thêm dữ liệu từ các bảng MySQL của mình. MySQL cũng là một thành phần quan trọng của ngăn xếp LAMP hiện đại, bao gồm Hệ điều hành dựa trên Linux, Máy chủ web Apache, Cơ sở dữ liệu MySQL và PHP để xử lý

SQL cũng có thể được sử dụng để xác định lược đồ bảng hoặc thậm chí định cấu hình mối quan hệ giữa các bảng trong cơ sở dữ liệu. Chẳng hạn, bạn có thể xác định trường Khóa chính tăng tự động của MySQL để tự động tạo các giá trị số tuần tự duy nhất bất cứ khi nào một hàng dữ liệu được chèn vào. Giao diện người dùng đồ họa phía máy khách như MySQL WorkBench, SequelPro hoặc DBVisualizer có thể được sử dụng để nhập các lệnh SQL và máy chủ sẽ phản hồi với thông tin được yêu cầu. MySQL cũng cung cấp phiên bản Enterprise trả phí bao gồm các dịch vụ hỗ trợ cao cấp và một số tiện ích mở rộng có thể được cài đặt dưới dạng Plugin máy chủ

Các tính năng chính của MySQL

MySQL được sử dụng rộng rãi bởi các tổ chức như Facebook, Flickr, Twitter, Wikipedia và YouTube. Điều này là do tập hợp các tính năng bắt mắt sau đây của MySQL.  

  • Dê hoạt động. Với MySQL, bạn có thể làm việc với nhiều ngôn ngữ lập trình khác nhau như PHP, PERL, C, C ++ và JAVA. Nó cũng cung cấp một bộ công cụ trực quan để đơn giản hóa các tác vụ tốn thời gian như Quản lý máy chủ, Báo cáo và Phân tích dữ liệu. Cho phép bạn làm việc với phạm vi bộ dữ liệu rộng hơn, MySQL cung cấp hỗ trợ đầy đủ cho một số Cấu trúc dữ liệu, dữ liệu JSON và Không gian địa lý, cũng như các loại dữ liệu logic, Số, Chữ và số, Ngày và Giờ
  • Hiệu suất hạng nhất. MySQL mang lại hiệu suất truy vấn tốt nhất trong lớp trên nhiều máy chủ được nhóm lại. Nó cung cấp một tiện ích tải nhanh với bộ nhớ cache riêng biệt và phân vùng chỉ mục bảng. MySQL cũng có thể xử lý hiệu quả khối lượng công việc dao động và xử lý khối lượng dữ liệu lớn ở tốc độ tối ưu. Điều này cho phép bạn lưu trữ hơn 50 triệu hàng dữ liệu trong một bảng với giới hạn kích thước tệp mặc định của bảng là 4 GB. Tuy nhiên, tùy thuộc vào cấu hình của hệ điều hành, mức này có thể tăng lên giới hạn lý thuyết là 8 triệu terabyte (TB).  
  • Mã nguồn mở. MySQL có Giấy phép Công cộng GNU (GPL), có nghĩa là nó sẽ luôn được cung cấp miễn phí. Nó cung cấp cho bạn sự tự do để tùy chỉnh nó trên cơ sở mã nguồn MySQL nguồn mở của Oracle dựa trên nhu cầu của bạn. Vì đây là phần mềm Nguồn mở nên một cộng đồng lớn đã phát triển, thường xuyên làm phong phú thêm tài liệu của MySQL và văn hóa hỗ trợ trực tuyến của nó
  • bản địa hóa. Để thân thiện với người dùng, MySQL hỗ trợ nhiều bộ ký tự, bao gồm latin1 (cp1252), tiếng Đức, big5, ujis, v.v. Bạn cũng có thể đặt ngôn ngữ thông báo lỗi mà máy chủ cung cấp cho máy khách. Thời gian máy chủ MySQL cũng có thể được thay đổi linh hoạt với khả năng đặt múi giờ cụ thể cho từng khách hàng
  • Bảo mật dữ liệu. MySQL cung cấp cho bạn toàn quyền kiểm soát cài đặt Kiểm soát truy cập dữ liệu. Các cơ chế mạnh mẽ như Hệ thống đặc quyền truy cập và Quản lý tài khoản người dùng cho phép bạn điều chỉnh ai có thể xem hoặc sử dụng dữ liệu MySQL của bạn. MySQL đặt tiêu chuẩn cao nhất với Xác minh dựa trên máy chủ và Mã hóa mật khẩu

Đơn giản hóa MySQL ETL bằng Đường ống dữ liệu không mã của Hevo

Dữ liệu Hevo là Đường ống dữ liệu không có mã cung cấp giải pháp được quản lý hoàn toàn để thiết lập Tích hợp dữ liệu cho hơn 100 nguồn dữ liệu (Bao gồm hơn 40 nguồn miễn phí) và sẽ cho phép bạn tải trực tiếp dữ liệu từ các nguồn như MySQL đến Kho dữ liệu hoặc Đích . Hevo cũng hỗ trợ MySQL làm Đích để tải Dữ liệu vào đó. Nó sẽ tự động hóa luồng dữ liệu của bạn trong vài phút mà không cần viết bất kỳ dòng mã nào. Kiến trúc chịu lỗi của nó đảm bảo rằng dữ liệu của bạn được an toàn và nhất quán. Hevo cung cấp cho bạn một giải pháp thực sự hiệu quả và hoàn toàn tự động để quản lý dữ liệu theo thời gian thực và luôn có sẵn dữ liệu để phân tích.  

Bắt đầu với Hevo miễn phí

Cùng điểm qua một số tính năng nổi bật của Hevo

  • Được quản lý hoàn toàn. Nó không yêu cầu quản lý và bảo trì vì Hevo là một nền tảng hoàn toàn tự động
  • Chuyển đổi dữ liệu. Nó cung cấp một giao diện đơn giản để hoàn thiện, sửa đổi và làm giàu dữ liệu bạn muốn chuyển.  
  • Thời gian thực. Hevo cung cấp di chuyển dữ liệu theo thời gian thực. Vì vậy, dữ liệu của bạn luôn sẵn sàng để phân tích
  • Quản lý lược đồ. Hevo có thể tự động phát hiện lược đồ của dữ liệu đến và ánh xạ nó tới lược đồ đích
  • kết nối. Hevo hỗ trợ hơn 100 Tích hợp cho các nền tảng SaaS như WordPress, FTP/SFTP, Tệp, Cơ sở dữ liệu, công cụ BI và API REST gốc & Trình kết nối Webhooks. Nó hỗ trợ nhiều điểm đến khác nhau bao gồm Google BigQuery, Amazon Redshift, Snowflake, Firebolt, Data Warehouses; .   
  • Chắc chắn. Hevo có kiến ​​trúc chịu lỗi đảm bảo rằng dữ liệu được xử lý một cách an toàn, nhất quán và không bị mất dữ liệu
  • Hevo được xây dựng để mở rộng quy mô. Khi số lượng nguồn và khối lượng dữ liệu của bạn tăng lên, Hevo sẽ mở rộng quy mô theo chiều ngang, xử lý hàng triệu bản ghi mỗi phút với rất ít độ trễ
  • Giám sát trực tiếp. Giám sát nâng cao cung cấp cho bạn chế độ xem một cửa để theo dõi tất cả các hoạt động diễn ra trong Đường ống dữ liệu
  • Hỗ trợ trực tuyến. Nhóm Hevo luôn sẵn sàng mở rộng hỗ trợ đặc biệt cho khách hàng của mình thông qua trò chuyện, email và các cuộc gọi hỗ trợ
Đăng ký tại đây để dùng thử miễn phí 14 ngày

Làm cách nào để đặt Khóa chính tăng tự động của MySQL?

MySQL Auto Increment Primary Key - Set Primary Key & Auto IncrementNguồn hình ảnh

Khi tạo bảng, gán một cột làm khóa chính là một trong những nhiệm vụ phổ biến nhất vì khóa này xác định duy nhất một hàng trong cơ sở dữ liệu. Để đảm bảo rằng nó là duy nhất cho mỗi hàng, bạn có thể đặt trường Khóa chính tăng tự động của MySQL bằng cách sử dụng Tính năng tăng tự động. Điều này cho phép MySQL tự động tạo các giá trị số tuần tự duy nhất bất cứ khi nào một hàng mới được chèn vào

Cần lưu ý rằng loại dữ liệu trên Số tăng tự động phải đủ lớn để chứa số lượng tối đa có thể cho cột đó. MySQL hỗ trợ INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT và BIGINT làm kiểu dữ liệu cho các trường Tăng tự động. Nếu khả thi, bạn có thể chọn thuộc tính UNSIGNED với loại dữ liệu để cho phép phạm vi giá trị lớn hơn

Bạn có thể đặt trường Khóa chính tăng tự động của MySQL thông qua cú pháp sau

CREATE TABLE table_name
( 
  column1 datatype NOT NULL AUTO_INCREMENT,
  column2 datatype [ NULL | NOT NULL ],
  ...
);

Trong phần này, bạn có thể xem qua các Ví dụ về truy vấn khóa chính tăng tự động của MySQL sau đây

1) Ví dụ về khóa chính tăng tự động của MySQL. Chèn hàng

  • Bước 1. tạo bảng Sản phẩm và đặt ID sản phẩm làm trường Khóa chính tăng tự động của MySQL
CREATE TABLE products (
  product_id int(11) NOT NULL AUTO_INCREMENT,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
  • Bước 2. Chèn 2 hàng dữ liệu vào bảng này rồi in bảng
INSERT INTO products(product_name) VALUES("Shoes"),("Shirt"),("Trouser");
SELECT * FROM products;

ĐẦU RA

product_id  |  product_name
    1		  Shoes 
    2 		  Shirt
    3		  Trouser

Do đó, bạn không phải lo lắng về việc chỉ định các Khóa chính duy nhất trong khi chèn các hàng dữ liệu mới. Ngoài ra, Auto Increment theo mặc định bắt đầu từ 1 và tăng dần theo 1

2) Ví dụ về khóa chính tăng tự động của MySQL. Xóa một hàng

Bây giờ, nếu bạn xóa một hàng có ID Sản phẩm 2 và chèn một hàng mới, thì ID Sản phẩm mới được tạo sẽ vẫn là 4. Do đó, MySQL tuân theo chỉ mục nơi bản ghi cuối cùng được thêm vào

DELETE FROM products WHERE product_id = 2
INSERT INTO products (product_name) VALUES("Jacket");
SELECT * FROM products;

ĐẦU RA.  

product_id   |   product_name
    1		   Shoes 
    3		   Trouser
    4              Jacket

3) Ví dụ về khóa chính tăng tự động của MySQL. Áp dụng cho trường không phải là số

Tính năng Auto-Increment chỉ có thể được áp dụng cho các trường số. Nếu bạn thử tạo bảng Sản phẩm và thay vì đặt ID sản phẩm làm trường Khóa chính tăng tự động của MySQL, bạn có thể đặt Tăng tự động thành Tên sản phẩm

________số 8_______

ĐẦU RA.  

Đoạn mã trên sẽ tạo ra một thông báo lỗi được đưa ra dưới đây

Error Code: 1063. Incorrect column specifier for column 'product_name'

4) Ví dụ về khóa chính tăng tự động của MySQL. Lệnh thay đổi bảng

Điều thường xảy ra là bạn có thể muốn tạo một Giá trị cột Tự động tăng sau khi giản đồ ban đầu của nó đã được tạo. Bạn có thể dễ dàng đạt được điều này bằng cách sử dụng Lệnh MySQL Alter Table trong các bước sau

  • Bước 1. Tạo bảng Sản phẩm mới cho ví dụ này mà không đặt trường Khóa chính tăng tự động của MySQL
CREATE TABLE products (
  product_id int(11) NOT NULL,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
  • Bước 2. thêm một số dữ liệu cũng trong đó
INSERT INTO products VALUES(2000,"Shoes"),(2001,"Shirt"),(2002, "Trouser");
SELECT * FROM products;

ĐẦU RA

CREATE TABLE products (
  product_id int(11) NOT NULL AUTO_INCREMENT,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
0
  • Bước 3. Bây giờ, hãy đặt ID sản phẩm làm trường Khóa chính tăng tự động của MySQL thông qua lệnh Bảng thay đổi và thử chèn một hàng dữ liệu mới
CREATE TABLE products (
  product_id int(11) NOT NULL AUTO_INCREMENT,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
1

ĐẦU RA

CREATE TABLE products (
  product_id int(11) NOT NULL AUTO_INCREMENT,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
2
  • Bước 4. Bạn cũng có thể đặt Giá trị do người dùng xác định cho trường Khóa chính tăng tự động của MySQL bằng cách sử dụng Lệnh bảng thay đổi
CREATE TABLE products (
  product_id int(11) NOT NULL AUTO_INCREMENT,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
3

ĐẦU RA

CREATE TABLE products (
  product_id int(11) NOT NULL AUTO_INCREMENT,
  product_name varchar(150) NOT NULL,
  PRIMARY KEY (`product_id`)
);
4

Phần kết luận

Trong bài viết này, bạn đã học cách thiết lập hiệu quả Khóa chính tăng tự động của MySQL bằng cách sử dụng Tính năng tăng tự động. Đây là một cách tiếp cận dễ dàng để tự động tạo các số tuần tự duy nhất cho Trường khóa chính của bạn. Theo mặc định, giá trị bắt đầu cho Số gia tự động là 1 và sẽ tiếp tục với số gia là 1. Bạn cũng đặt các giá trị do người dùng xác định cho Tăng tự động bằng cách sử dụng lệnh Bảng thay đổi. Bạn nên chỉ định ràng buộc không dấu trên Khóa chính tăng tự động của MySQL để tránh có số âm

Sau khi bạn đã đặt trường Khóa chính tăng tự động của MySQL, bạn có thể yên tâm về việc tự động tạo các số tuần tự duy nhất bất cứ khi nào bạn chèn một hàng. Để có được bức tranh toàn cảnh về tình trạng & hiệu suất kinh doanh của bạn, bạn cần hợp nhất dữ liệu từ MySQL và tất cả các ứng dụng khác được sử dụng trong doanh nghiệp của bạn để Tiếp thị, Quản lý quan hệ khách hàng, Kế toán, Bán hàng, v.v. Để đạt được điều này, bạn cần chỉ định một phần Băng thông kỹ thuật của mình để Tích hợp dữ liệu từ tất cả các nguồn, Làm sạch & Chuyển đổi dữ liệu và cuối cùng, Tải dữ liệu đó vào Kho dữ liệu đám mây hoặc đích bạn chọn để phân tích thêm về doanh nghiệp. Tất cả những thách thức này có thể được giải quyết một cách thoải mái bằng công cụ ETL dựa trên đám mây như Hevo Data.   

Ghé thăm trang web của chúng tôi để khám phá Hevo

Dữ liệu Hevo, Đường ống dữ liệu không mã có thể truyền dữ liệu liền mạch từ biển rộng lớn gồm hơn 100 nguồn như MySQL sang Kho dữ liệu hoặc Điểm đến do bạn chọn để hiển thị trong Công cụ BI. Đây là một dịch vụ đáng tin cậy, hoàn toàn tự động và an toàn không yêu cầu bạn viết bất kỳ mã nào.   

Nếu bạn đang sử dụng MySQL làm Hệ thống quản lý cơ sở dữ liệu của mình và đang tìm kiếm một giải pháp thay thế đơn giản cho Tích hợp dữ liệu thủ công, thì Hevo có thể dễ dàng tự động hóa việc này cho bạn. Hevo, với khả năng tích hợp mạnh mẽ với hơn 100 nguồn & công cụ BI (Bao gồm hơn 40 nguồn miễn phí), cho phép bạn không chỉ xuất và tải dữ liệu mà còn chuyển đổi và làm phong phú dữ liệu của mình cũng như làm cho dữ liệu sẵn sàng để phân tích trong nháy mắt

Bạn muốn đưa Hevo đi chơi? . Hãy kiểm tra các chi tiết về giá để hiểu kế hoạch nào đáp ứng tất cả các nhu cầu kinh doanh của bạn

Hãy cho chúng tôi biết về trải nghiệm của bạn khi thiết lập Khóa chính tăng tự động của MySQL. Chia sẻ suy nghĩ của bạn với chúng tôi trong phần bình luận bên dưới

Làm cách nào để đặt mức tăng tự động trong bàn làm việc của MySQL?

Trong MySQL, cú pháp để thay đổi giá trị bắt đầu cho cột AUTO_INCREMENT bằng cách sử dụng câu lệnh ALTER TABLE là. ALTER TABLE table_name AUTO_INCREMENT = start_value; table_name. Tên của bảng có giá trị AUTO_INCREMENT mà bạn muốn thay đổi.

Làm cách nào để đặt giá trị gia tăng tự động MySQL?

Cú pháp cho MySQL . Theo mặc định, giá trị bắt đầu cho AUTO_INCREMENT là 1 và giá trị này sẽ tăng thêm 1 cho mỗi bản ghi mới. GIÁ TRỊ ('Lars','Monsen'); . MySQL uses the AUTO_INCREMENT keyword to perform an auto-increment feature. By default, the starting value for AUTO_INCREMENT is 1, and it will increment by 1 for each new record. VALUES ('Lars','Monsen'); The SQL statement above would insert a new record into the "Persons" table.

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

Theo mặc định, cột AUTO_INCREMENT bắt đầu từ 1. Bạn cũng có thể gán rõ ràng 0 cho cột để tạo số thứ tự tiếp theo trừ khi chế độ SQL NO_AUTO_VALUE_ON_ZERO được bật . Gán NULL cho cột cũng sẽ tạo ra số thứ tự tiếp theo, miễn là cột được khai báo NOT NULL.