Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

अन्य फ़ील्ड के मान के रूप में MySQL डिफ़ॉल्ट मान

मुझे इसके लिए दो संभावित समाधान दिखाई दे रहे हैं:

<मजबूत>1. संभावना:

आप फ़ंक्शन का उपयोग केवल sort_num . को अनदेखा करने के लिए करते हैं अगर यह सेट नहीं है:

`SELECT * FROM mytable ORDER BY coalesce(sort_num, id)`

coalesce() पहला गैर-शून्य मान देता है, इसलिए आप sort_num . के लिए मान सम्मिलित करेंगे यदि आपको वास्तव में वस्तुओं को पुन:व्यवस्थित करने की आवश्यकता है।

<मजबूत>2. संभावना:

आप एक ट्रिगर लिखते हैं, जो स्वचालित रूप से मान सेट करता है यदि यह सम्मिलित कथन में सेट नहीं है:

DELIMITER //

CREATE TRIGGER sort_num_trigger
BEFORE INSERT ON mytable
FOR EACH ROW BEGIN
    DECLARE auto_inc INT;
    IF (NEW.sort_num  is null) THEN
         -- determine next auto_increment value
        SELECT AUTO_INCREMENT INTO auto_inc FROM information_schema.TABLES
        WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME = 'mytable';
        -- and set the sort value to the same as the PK
        SET NEW.sort_num = auto_inc;
    END IF;
END
//

(इस टिप्पणी से प्रेरित होकर ए> )

हालाँकि, यह समांतरता के मुद्दों (एक ही समय में कई प्रश्नों को सम्मिलित करने) में चल सकता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हाइव टेबल सभी प्रश्नों पर खाली परिणाम सेट कर रहा है

  2. हेडर जानकारी को संशोधित नहीं कर सकता

  3. AndroidApp और MySqlConnection ने कनेक्शन काम नहीं किया। खुला

  4. Mysql Group 24 घंटे के अंतराल तक

  5. MySQL में row_number कैसे प्राप्त करें