কম্পিউটার টিউটোরিয়াল

MySQL-এ ON UPDATE CURRENT_TIMESTAMP কলাম থেকে কীভাবে সরাবেন

ON UPDATE CURRENT_TIMESTAMP` আপডেটের সময় স্বয়ংক্রিয়ভাবে টাইমস্ট্যাম্প আপডেট করে। এটি সরিয়ে ফেলতে ALTER TABLE ... CHANGE` কমান্ড ব্যবহার করতে হয়।

সিনট্যাক্স

ALTER TABLE yourTableName CHANGE yourTimeStampColumnName yourTimeStampColumnName TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

উদাহরণ

টেবিল তৈরি (ON UPDATE CURRENT_TIMESTAMP সহ):

mysql> CREATE TABLE removeOnUpdateCurrentTimeStampDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20),
    -> UserUpdateTimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    -> );

টেবিল বর্ণনা দেখি:

mysql> DESC removeOnUpdateCurrentTimeStampDemo;
+---------------------+-------------+------+-----+-------------------+-----------------------------+
| Field               | Type        | Null | Key | Default           | Extra                       |
+---------------------+-------------+------+-----+-------------------+-----------------------------+
| Id                  | int(11)     | NO   | PRI | NULL              | auto_increment              |
| Name                | varchar(20) | YES  |     | NULL              |                             |
| UserUpdateTimestamp | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------------------+-------------+------+-----+-------------------+-----------------------------+

Extra` কলামে `on update CURRENT_TIMESTAMP` দেখা যাচ্ছে। এখন এটি সরিয়ে ফেলি:

mysql> ALTER TABLE removeOnUpdateCurrentTimeStampDemo
    -> CHANGE UserUpdateTimestamp UserUpdateTimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.16 sec)

আবার টেবিল বর্ণনা:

mysql> DESC removeOnUpdateCurrentTimeStampDemo;
+---------------------+-------------+------+-----+-------------------+----------------+
| Field               | Type        | Null | Key | Default           | Extra          |
+---------------------+-------------+------+-----+-------------------+----------------+
| Id                  | int(11)     | NO   | PRI | NULL              | auto_increment |
| Name                | varchar(20) | YES  |     | NULL              |                |
| UserUpdateTimestamp | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
+---------------------+-------------+------+-----+-------------------+----------------+

Extra` কলাম থেকে `on update CURRENT_TIMESTAMP` গিয়ে গেছে। যদি ডিফল্ট `CURRENT_TIMESTAMP`-ও সরাতে চান:

mysql> ALTER TABLE removeOnUpdateCurrentTimeStampDemo
    -> CHANGE UserUpdateTimestamp UserUpdateTimestamp TIMESTAMP NOT NULL;

তब Default এবং Extra` দুটোই খালি হয়ে যাবে।

  1. MySQL-এ REPLACE() ফাংশন দিয়ে কলাম থেকে নির্দিষ্ট ক্যারেক্টার সব মুছে ফেলা

  2. MySQL-এ LEFT() ও INSTR() দিয়ে VARCHAR কলাম থেকে শেষ শব্দ সরিয়ে 숫া রেখে দেওয়া

  3. MySQL-এ DATE টাইপ কলাম আপডেট করা

  4. MySQL에서 예약어 'from'을 컬럼명으로 쓰려면 백틱으로 감싸기