Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Kunci Utama Jadual dalam Pelayan SQL?
Dalam Pelayan SQL, terdapat beberapa pendekatan untuk mendapatkan kunci utama jadual tertentu. Mari kita terokainya:
Pendekatan 1:
Pertanyaan ini memilih nama lajur yang ditetapkan sebagai kunci utama menggunakan fungsi OBJECTPROPERTY:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + QUOTENAME(CONSTRAINT_NAME)), 'IsPrimaryKey') = 1 AND TABLE_NAME = 'TableName' AND TABLE_SCHEMA = 'Schema'
Pendekatan 2:
Sebagai alternatif, anda boleh menggunakan fungsi sistem yang dipanggil sys.primary_keys untuk mendapatkan semula maklumat kunci utama:
SELECT name, primary_key_id, object_id FROM sys.primary_keys WHERE object_id = OBJECT_ID('TableName') ORDER BY primary_key_id;
Perbandingan dengan MySQL Query:
Perhatikan bahawa pertanyaan MySQL yang disediakan berbeza sedikit daripada pendekatan SQL Server. Dalam SQL Server, anda tidak boleh menggunakan pernyataan SHOW KEYS untuk menunjukkan nama_kunci tertentu secara eksplisit. Sebaliknya, anda perlu menentukan CONSTRAINT_NAME bagi kekangan kunci utama menggunakan OBJECTPROPERTY.
Pertanyaan Ideal untuk Kedua-dua MySQL dan SQL Server:
Malangnya, tiada SQL langsung pertanyaan yang berfungsi dengan lancar untuk kedua-dua MySQL dan SQL Server untuk mendapatkan kunci utama. Walau bagaimanapun, anda boleh menggunakan pertanyaan dinamik yang menanyakan jadual sistem yang berbeza berdasarkan jenis pangkalan data, seperti yang ditunjukkan di bawah:
-- Check the database type IF @@SERVERNAME LIKE '%MySQL%' BEGIN SET @sqlQuery = 'SHOW KEYS FROM tablename WHERE Key_name = ''PRIMARY'''; END ELSE BEGIN SET @sqlQuery = 'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + ''.' + QUOTENAME(CONSTRAINT_NAME)), ''IsPrimaryKey'') = 1 AND TABLE_NAME = ''TableName'' AND TABLE_SCHEMA = ''Schema'''; END EXEC sp_executesql @sqlQuery;
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kunci Utama Jadual dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!