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

MySQL में ALTER TABLE MODIFY से मौजूदा कॉलम पर NOT NULL कंस्ट्रेंट जोड़ना

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

उदाहरण के लिए टेबल बनाना (StudentName बिना NOT NULL)

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(100)
);

टेबल संरचना जांचना (पहले)

mysql> DESC DemoTable;

आउटपुट

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(100) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

NOT NULL कंस्ट्रेंट जोड़ना

mysql> ALTER TABLE DemoTable MODIFY StudentName VARCHAR(100) NOT NULL;

आउटपुट

Query OK, 0 rows affected (1.57 sec)

टेबल संरचना जांचना (बाद में)

mysql> DESC DemoTable;

आउटपुट

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(100) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

महत्वपूर्ण: MODIFY में पूर्ण कॉलम परिभाषा (डेटा टाइप, लंबाई) दोहरानी पड़ती है। यदि टेबल में मौजूदा NULL मान हैं, तो यह कमांड विफल होगी। पहले NULL मानों को अपडेट करें: UPDATE DemoTable SET StudentName='Unknown' WHERE StudentName IS NULL।

  1. - MySQL में उपयोगकर्ता-परिभाषित वेरिएबल का उपयोग करके रनिंग सबटोटल (कम्युलेटिव योग) की गणना करना

    MySQL में उपयोगकर्ता-परिभाषित वेरिएबल (@variable) का उपयोग करके एक कॉलम का रनिंग टोटल (कम्युलेटिव योग) दूसरी कॉलम में गणना करें और स्टोर करें। उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> Amount INT, -> SubTotal INT -> ); Query OK, 0 rows affected (0.

  1. - MySQL में जेनरेटेड कॉलम (GENERATED ALWAYS AS) का उपयोग करके नया कॉलम बनाना और स्वचालित रूप से भरना

    MySQL 5.7+ में GENERATED ALWAYS AS (जेनरेटेड कॉलम / वर्चुअल कॉलम) का उपयोग करके नया कॉलम बनाएं जो अन्य कॉलम के अभिव्यक्ति से स्वचालित रूप से परिकलित होता है। उदाहरण: टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable ( -> Value1 INT, -> Value2 INT -> ); Query OK, 0 rows

  1. - क्या MySQL में SERIAL कॉलम नाम में पहले से ही 'NOT NULL' शामिल होता है

    MySQL में SERIAL डेटा टाइप की परिभाषा MySQL में SERIAL निम्न के लिए एक एलियास (उपनाम) है: BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE इसलिए, SERIAL के बाद NOT NULL न लिखें, क्योंकि यह पहले से ही इसकी परिभाषा का हिस्सा है। आइए एक उदाहरण देखते हैं - serial नाम का एक कॉलम बनाते हैं: mysql> CREATE