Làm cách nào để kiểm tra xem một cột có tồn tại trong bảng mysql không?

Bây giờ chúng ta có một bảng có tên là SampleTable, chứa ba cột là Id, Name và Address. Như hình dưới đây

SELECT * FROM dbo.SampleTable

Hãy xem các phương pháp khác nhau để kiểm tra sự tồn tại của cột

Kiểm tra sự tồn tại của cột bằng INFORMATION_SCHEMA. CỘT

THÔNG TIN_SCHEMA. Chế độ xem COLUMNS cho phép bạn lấy thông tin về tất cả các cột cho tất cả các bảng trong cơ sở dữ liệu

Hãy kiểm tra xem cột Name có tồn tại trong bảng SampleTable hay không

Sau T-SQL sử dụng Information_Schema. Chế độ xem cột để kiểm tra sự tồn tại của cột Tên trong bảng Bảng mẫu

IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'Name'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];

Bạn có thể thấy, cột Tên tồn tại trong bảng

Nếu chúng ta kiểm tra cột RowId trong bảng SampleTable, vì chúng ta đã biết rằng cột RowId không tồn tại trong bảng, hãy kiểm tra bằng Information_Schema. Chế độ xem cột



 IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'RowId'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];

Kiểm tra sự tồn tại của cột bằng sys. cột

hệ thống. cột là một dạng xem danh mục khác trong SQL Server trả về một hàng cho từng cột của một đối tượng có các cột, chẳng hạn như dạng xem hoặc bảng





Hãy kiểm tra tên cột bằng sys. chế độ xem cột, cho dù nó có tồn tại trong bảng SampleTable hay không

IF EXISTS[SELECT 1 FROM sys.columns 
       WHERE Name = N'Name'
       AND Object_ID = Object_ID[N'dbo.SampleTable']]

SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];

Bạn có thể thấy trong kết quả bên dưới, tên cột tồn tại trong bảng

Kiểm tra sự tồn tại của cột bằng hàm COL_LENGTH

Hàm COL_LENGTH là một hàm Siêu dữ liệu của Máy chủ SQL, trả về độ dài đã xác định của một cột, tính bằng byte

Hãy xem cách hàm này trả về độ dài của cột được chỉ định theo byte. Hãy kiểm tra độ dài của cột Tên

 SELECT COL_LENGTH['[dbo].[SampleTable]','Name'] As ColLen

Bạn có thể thấy, Nó trả về độ dài của Tên cột là 100, điều này cũng đảm bảo rằng cột này tồn tại trong bảng, đó là lý do tại sao nó có một số độ dài

T-SQL sau sử dụng hàm COL_LENGTH trả về độ dài của một cột như chúng ta đã thấy ở trên, thỏa mãn điều kiện IF và trả về 'Cột tồn tại trong bảng'



Trường hợp trong bảng không tồn tại cột thì hàm COL_LENGTH trả về giá trị null tức là trong bảng không tồn tại cột


Hàng ngày, chúng tôi gặp tình huống này khi phải tìm hiểu xem một cột có tồn tại cho
Bảng hoặc Chế độ xem trong Cơ sở dữ liệu không. Đặc biệt nếu chúng tôi đang gỡ lỗi Báo cáo máy chủ SQL/Một ứng dụng,
chúng tôi lấy một tên cột hoặc một phần của nó và muốn biết rằng cột này được sử dụng từ bảng nào.

Chúng tôi có thể truy vấn INFORMATION_SCHEMA. COLUMNS xem để lấy thông tin này.

USE Test
GO--Create Test Table
_______6
--Create Test View
CREATE VIEW dbo.vw_TestAS
  SELECT ID,
         NAME,
         Address
  FROM   dbo.Test 

--Check if any of the object[ Table,View] has column name='Address'
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'Name'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];
0
IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'Name'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];
1Hoặc Nếu bạn muốn tìm kiếm với một số phần của tên cột

IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'Name'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];
2
IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'Name'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];
3
IF EXISTS 
[
  SELECT * 
  FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'SampleTable'
  AND column_name = 'Name'
]
SELECT 'Column exists in table' AS [Status] ;
ELSE
SELECT 'Column does not exist in table' AS [Status];
1

CREATE TABLE dbo.Test
  [
     ID      INT IDENTITY[1, 1],
     Name    VARCHAR[100],
     Address VARCHAR[100]
  ]
GO
0
CREATE TABLE dbo.Test
  [
     ID      INT IDENTITY[1, 1],
     Name    VARCHAR[100],
     Address VARCHAR[100]
  ]
GO
1
CREATE TABLE dbo.Test
  [
     ID      INT IDENTITY[1, 1],
     Name    VARCHAR[100],
     Address VARCHAR[100]
  ]
GO
2

Làm cách nào để xem chi tiết cột trong MySQL?

Bạn có thể liệt kê các cột của bảng bằng lệnh mysqlshow db_name tbl_name. .
Cánh đồng. Tên của cột
Loại. Kiểu dữ liệu cột
đối chiếu. .
Vô giá trị. .
Chìa khóa. .
Mặc định. .
Thêm. .
đặc quyền

Làm cách nào để kiểm tra xem giá trị cột có tồn tại trong SQL không?

Toán tử EXISTS được sử dụng để kiểm tra sự tồn tại của bất kỳ bản ghi nào trong truy vấn con. Toán tử EXISTS trả về TRUE nếu truy vấn con trả về một hoặc nhiều bản ghi

Làm. = Làm việc trong MySQL?

MySQL Not Equal là một toán tử bất đẳng thức được sử dụng để trả về một tập hợp các hàng sau khi so sánh hai biểu thức không bằng nhau. MySQL chứa hai loại toán tử Not Equal, đó là [< >] và [. =] .

Làm cách nào để kiểm tra xem một bảng có tồn tại trong MySQL không?

4. 26 Thủ tục table_exists[] . Kiểm tra xem một bảng đã cho tồn tại dưới dạng bảng thông thường, bảng TẠM THỜI hay dạng xem. Thủ tục trả về kiểu bảng trong tham số OUT.

Chủ Đề