PhpMyAdmin kullanarak "Benzersiz Anahtar Kısıtı" nı MySQL tablosunun bir sütununa nasıl bırakabilirim?
PhpMyAdmin kullanarak "Benzersiz Anahtar Kısıtı" nı MySQL tablosunun bir sütununa nasıl bırakabilirim?
Yanıtlar:
Benzersiz bir kısıtlama da bir endekstir.
İlk SHOW INDEX FROM tbl_name
olarak dizin adını bulmak için kullanın . Dizinin adı key_name
, bu sorgunun sonuçlarında çağrılan sütunda saklanır .
Ardından DROP INDEX'i kullanabilirsiniz :
DROP INDEX index_name ON tbl_name
veya ALTER TABLE sözdizimi:
ALTER TABLE tbl_name DROP INDEX index_name
SHOW CREATE TABLE tbl_name
.
Aşağıdaki tabloda gösterildiği gibi phpMyAdmin'i kullanarakDROP
tablodan benzersiz bir kısıtlama yapabilirsiniz . Kanat açıklığı alanına benzersiz bir kısıtlama getirildi. Kısıtlamanın adı, bu örnekte alan adıyla aynıdır.
Bir tabloya benzersiz bir anahtar kısıtlaması yerleştirebilen dizinler PRIMARY
ve UNIQUE
dizinlerdir.
Bir sütundaki benzersiz anahtar kısıtlamasını kaldırmak, ancak dizini korumak için dizini türüyle kaldırabilir ve yeniden oluşturabilirsiniz INDEX
.
Tüm tablolar için işaretlenmiş bir dizin bulundurmanın iyi bir fikir olduğunu unutmayın PRIMARY
.
UNIQUE
dizini normal ile değiştirerek hafifletilebilir INDEX
.
Phpmyadmin kullanarak UNIQUE kısıtlaması eklemek için, o tablonun yapısına gidin ve aşağıda bulun ve tıklayın,
BENZERSİZ kısıtlamayı aynı şekilde kaldırmak için, yapıya gidin ve Dizinler Sekmesi'ne kadar aşağı kaydırın ve aşağıyı bulun ve bırak'ı tıklayın,
Umarım bu işe yarar.
Zevk almak ;)
WAMP 3.0 için: 1 Sütun Ekle'nin altındaki Yapı'ya tıklayın '- Dizinler' seçeneğini göreceksiniz -İndeksler'i tıklayın ve istediğiniz dizini bırakın.
Mysql veritabanı tablosundan benzersiz kısıtlamaları kaldırmak istiyorsanız, drop index ile alter tablosunu kullanın.
Misal:
tablo oluşturma unique_constraints (unid int, etkinlik_adı varchar (100), CONSTRAINT activty_uqniue UNIQUE (etkinlik_adı), birincil anahtar (unid));
alter table unique_constraints drop index activty_uqniue;
Nerede activty_uqniue için EŞSİZ sınırlamadır ACTIVITY_NAME sütunda.
Kısıtlama sözdizimi ile kaldırılabilir:
MySQL 8.0.19 itibariyle, ALTER TABLE, kısıtlama türünün sınırlama adından belirlendiği herhangi bir türdeki mevcut kısıtlamaları bırakmak ve değiştirmek için daha genel (ve SQL standardı) sözdizimine izin verir:
ALTER TABLE tbl_name DROP CONSTRAINT symbol;
Misal:
CREATE TABLE tab(id INT, CONSTRAINT unq_tab_id UNIQUE(id));
-- checking constraint name if autogenerated
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'tab';
-- dropping constraint
ALTER TABLE tab DROP CONSTRAINT unq_tab_id;
benim tablo adı benzersiz bir kısıtlama sütun emp_id şimdi alıcılar iam emp_id düşecek olan alıcılar
1. adım: sp_helpindex alıcılarını yürütün, resim dosyasına bakın
2. adım: Dizin adresini kopyalayın
step3: tablo alıcıları bırakma kısıtlamasını değiştirir [UQ__buyers__1299A860D9793F2E] tablo değiştirme alıcıları bırakma sütunu emp_id
Not:
blockquote
Alıcılar yerine tablo isminizi değiştirin :)
blockquote
Bu tüm emp_id sütun adları ile kısıtlamalar bırakıldı!
İlk tabloyu sil
SQL'e git
Bu kodu kullanın:
CREATE TABLE service( --tablename
`serviceid` int(11) NOT NULL,--columns
`customerid` varchar(20) DEFAULT NULL,--columns
`dos` varchar(30) NOT NULL,--columns
`productname` varchar(150) NOT NULL,--columns
`modelnumber` bigint(12) NOT NULL,--columns
`serialnumber` bigint(20) NOT NULL,--columns
`serviceby` varchar(20) DEFAULT NULL--columns
)
--INSERT VALUES
INSERT INTO `service` (`serviceid`, `customerid`, `dos`, `productname`, `modelnumber`, `serialnumber`, `serviceby`) VALUES
(1, '1', '12/10/2018', 'mouse', 1234555, 234234324, '9999'),
(2, '09', '12/10/2018', 'vhbgj', 79746385, 18923984, '9999'),
(3, '23', '12/10/2018', 'mouse', 123455534, 11111123, '9999'),
(4, '23', '12/10/2018', 'mouse', 12345, 84848, '9999'),
(5, '546456', '12/10/2018', 'ughg', 772882, 457283, '9999'),
(6, '23', '12/10/2018', 'keyboard', 7878787878, 22222, '1'),
(7, '23', '12/10/2018', 'java', 11, 98908, '9999'),
(8, '128', '12/10/2018', 'mouse', 9912280626, 111111, '9999'),
(9, '23', '15/10/2018', 'hg', 29829354, 4564564646, '9999'),
(10, '12', '15/10/2018', '2', 5256, 888888, '9999');
--before droping table
ALTER TABLE `service`
ADD PRIMARY KEY (`serviceid`),
ADD unique`modelnumber` (`modelnumber`),
ADD unique`serialnumber` (`serialnumber`),
ADD unique`modelnumber_2` (`modelnumber`);
--after droping table
ALTER TABLE `service`
ADD PRIMARY KEY (`serviceid`),
ADD modelnumber` (`modelnumber`),
ADD serialnumber` (`serialnumber`),
ADD modelnumber_2` (`modelnumber`);