Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में ALTER TABLE MODIFY से NOT NULL प्रतिबंध कैसे हटाएं?

MySQL में किसी कॉलम से NOT NULL प्रतिबंध हटाने के लिए ALTER TABLE ... MODIFY COLUMN का उपयोग करें और कॉलम परिभाषा से NOT NULL हटा दें।

सिंटैक्स

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName dataType;

नोट: नई परिभाषा में NOT NULL **नहीं** लिखें।

उदाहरण के साथ समझें

NOT NULL कॉलम के साथ टेबल बनाएं:

CREATE TABLE NotNullDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20) NOT NULL,
    PRIMARY KEY(Id)
);

NULL डालने का प्रयास (विफल होगा):

INSERT INTO NotNullDemo(Name) VALUES(NULL);
ERROR 1048 (23000): Column 'Name' cannot be null

NOT NULL प्रतिबंध हटाएं

ALTER TABLE NotNullDemo MODIFY COLUMN Name VARCHAR(20);

परिणाम: Query OK, 0 rows affected (1.78 sec)

अब NULL डालें - काम करेगा

INSERT INTO NotNullDemo(Name) VALUES(NULL);
INSERT INTO NotNullDemo(Name) VALUES('Sam');
INSERT INTO NotNullDemo(Name) VALUES('Mike');
INSERT INTO NotNullDemo(Name) VALUES(NULL);
INSERT INTO NotNullDemo(Name) VALUES(NULL);
INSERT INTO NotNullDemo(Name) VALUES('John');

सभी रिकॉर्ड देखें:

SELECT * FROM NotNullDemo;

आउटपुट:

+----+------+
| Id | Name |
+----+------+
| 1  | NULL |
| 2  | Sam  |
| 3  | Mike |
| 4  | NULL |
| 5  | NULL |
| 6  | John |
+----+------+

संरचना सत्यापित करें

DESC NotNullDemo;

आउटपुट (Null = YES):

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| Id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

NOT NULL वापस जोड़ने के लिए

ALTER TABLE NotNullDemo MODIFY COLUMN Name VARCHAR(20) NOT NULL;

नोट: यदि टेबल में पहले से NULL मान हैं, तो यह विफल होगा। पहले NULL अपडेट करें।

एक साथ कॉलम टाइप और NULL बदलें

-- VARCHAR(20) NOT NULL → VARCHAR(50) NULL
ALTER TABLE NotNullDemo MODIFY COLUMN Name VARCHAR(50);

-- INT NULL → BIGINT NOT NULL
ALTER TABLE NotNullDemo MODIFY COLUMN Age BIGINT NOT NULL;

महत्वपूर्ण नोट्स

  • MODIFY COLUMN कॉलम परिभाषा पूरी तरह से बदल देता है
  • डिफॉल्ट मान, ऑटो_इन्क्रीमेंट, कमेंट भी पुनः निर्दिष्ट करें यदि रखने हों
  • बड़े टेबल पर यह ऑपरेशन टेबल लॉक कर सकता है (MySQL 8.0+ में INSTANT DDL कुछ मामलों में)
  • CHANGE COLUMN नाम भी बदल सकता है, MODIFY केवल परिभाषा
  1. - MySQL में NULL और NOT NULL रिकॉर्ड वाले कॉलम से केवल NOT NULL मान प्रदर्शित करें

    इसके लिए आप IS NOT NULL प्रॉपर्टी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1 values(2019-09-10); Query OK, 1 r

  1. - MySQL में NOT NULL बाधा से कॉलम को खाली न रहने दें

    कॉलम परिभाषा में NOT NULL बाधा जोड़कर उस कॉलम में NULL मान डालने से रोकें। टेबल बनाएं mysql> CREATE TABLE DemoTable1895 ( Id INT NOT NULL, FirstName VARCHAR(20), LastName VARCHAR(20) NOT NULL ); डेटा डालें (त्रुटि प्रदर्शन) mysql> INSERT INTO DemoTable1895 VALUES(100, John, Smith

  1. - MySQL में ALTER TABLE का उपयोग करके मौजूदा कॉलम पर NOT NULL विशेषता सेट करें

    MySQL में मौजूदा कॉलम को NOT NULL बनाना मौजूदा कॉलम पर NOT NULL प्रतिबंध जोड़ने के लिए, ALTER TABLE ... MODIFY स्टेटमेंट का उपयोग करें जिसमें कॉलम परिभाषा में NOT NULL शामिल हो। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) UserName पर NOT NULL प्रतिबंध जोड़ना MODIFY UserName VARCHAR(20) NO