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

MySQL-এ ভিউ থেকে ডিলিট করলে বেস টেবিলও ডিলিট হয় কিনা?


উত্তর: হ্যাঁ, আপডেটেবল ভিউ থেকে ডিলিট করলে বেস টেবিল প্রভাবিত হয়

MySQL-এ যদি ভিউ আপডেটেবল হয় (সিঙ্গেল টেবিল, কোনো এগরিগেট/ডISTINCT/GROUP BY/UNION নেই), তবে ভিউতে DELETE, UPDATE, INSERT করলে বেস টেবিলে পরিবর্তন হয়।

উদাহরণ

বেস টেবিল তৈরি

mysql> create table deleteFromBaseTableDemo (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.83 sec)

mysql> insert into deleteFromBaseTableDemo(Name) values('John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into deleteFromBaseTableDemo(Name) values('Carol');
Query OK, 1 row affected (0.15 sec)
mysql> insert into deleteFromBaseTableDemo(Name) values('Bob');
Query OK, 1 row affected (0.14 sec)
mysql> insert into deleteFromBaseTableDemo(Name) values('Sam');
Query OK, 1 row affected (0.14 sec)

ভিউ তৈরি

mysql> CREATE VIEW delete_view AS SELECT Id, Name FROM deleteFromBaseTableDemo;
Query OK, 0 rows affected (0.17 sec)

ভিউ ডেটা যাচাই

mysql> SELECT * FROM delete_view;

আউটপুট (৪ রো)

+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 | Carol |
|  3 | Bob   |
|  4 | Sam   |
+----+-------+

ভিউ থেকে Id=4 ডিলিট

mysql> DELETE FROM delete_view WHERE Id = 4;
Query OK, 1 row affected (0.26 sec)

ভিউ ডেটা (৩ রো)

mysql> SELECT * FROM delete_view;

আউটপুট

+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 | Carol |
|  3 | Bob   |
+----+-------+

বেস টেবিল ডেটা (৩ রো)

mysql> SELECT * FROM deleteFromBaseTableDemo;

আউটপুট

+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 | Carol |
|  3 | Bob   |
+----+-------+

দুই টেবিলে Id=4 মুছে গিয়েছে।

নোট: কমপ্লেক্স ভিউ (JOIN, GROUP BY, SUBQUERY) আপডেটেবল নয়। WITH CHECK OPTION ব্যবহার করলে শর্তভাঙ্ঘা রো ইনসার্ট/আপডেট ব্লক হয়।

  1. MySQL-এ VIEW থেকে টেবিল তৈরি করা (CREATE TABLE ... SELECT)

  2. MySQL-এ RAND() এবং LIMIT দিয়ে র‍্যান্ডম রো বের করা

  3. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা

  4. MySQL-এ নির্দিষ্ট শর্ত অনুযায়ী সিঙ্গেল রো বের করা