तुम भी पर अद्यतन स्थापित करने के लिए server_default अपहरण कर सकते हैं
datemodified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
हालांकि, Mchl का जवाब अभी भी लागू होता है: वहाँ केवल हो सकता है एक तालिका में एक स्वचालित TIMESTAMP कॉलम (http://dev.mysql.com/doc/refman/5.5/en/timestamp.html)
यह भी ध्यान दें कि कॉल का क्रम शरद ऋतु महत्वपूर्ण है! यदि आपके पास DEFAULT और UPDATE संशोधक के बिना TIMESTAMP कॉलम है, और यह आपकी तालिका में पहला टाइमस्टैम्प कॉलम है, यह स्वचालित रूप से अद्यतन CURRENT_TIMESTAMP पर DEFAULT CURRENT_TIMESTAMP पर सेट हो जाएगा। (http://dev.mysql.com/doc/refman/5.5/en/timestamp.html)
तो यह ठीक है:
Column('datemodified', TIMESTAMP,
server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
Column('datecreated', TIMESTAMP)
इस जबकि नहीं है:
Column('datecreated', TIMESTAMP)
Column('datemodified', TIMESTAMP,
server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
`एक पंक्ति के पहले प्रवेश के दौरान वर्तमान समय के DateCreated 'सेट करने के लिए, बस इसके मूल्य को स्पष्ट रूप से न्यूल पर सेट करें। फिर, http://dev.mysql.com/doc/refman/5.5/en/timestamp.html से:
डिफ़ॉल्ट रूप से, TIMESTAMP कॉलम नहीं NULL, कर रहे हैं शून्य मूल्यों को शामिल नहीं कर सकते हैं और बताए शून्य वर्तमान टाइमस्टैम्प प्रदान करती है।
अगर मैं 'उपयोगकर्ता = तालिका ('उन', मेटाडाटा, स्तंभ ('DateCreated', DATETIME), स्तंभ ('datemodified', TIMESTAMP, server_onupdate = पाठ ('CURRENT_TIMESTAMP')) लिखेंगे, ) ' फिर यह अद्यतन CURRENT_TIMESTAMP पर DEFAULT के लिए काम करेगा? – Nilesh
मैंने इस उदाहरण के साथ जांच की है लेकिन यह अद्यतन CURRENT_TIMESTAMP पर डिफॉल्ट सेट नहीं है। जब हम एकल कॉलम के लिए उपयोग करते हैं। :( – Nilesh
यदि यह संभव नहीं है तो कृपया मुझे बताएं कि मैं sqlalchemy में onupdate ट्रिगर कैसे सेट कर सकता हूं? – Nilesh