ये हम चले:mysql लॉक त्रुटि या बग?
mysql> LOCK TABLES radcheck WRITE;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM radcheck WHERE id NOT IN (
-> SELECT id FROM (
-> SELECT id FROM radcheck WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1
-> ) AS c
->);
ERROR 1100 (HY000): Table 'radcheck' was not locked with LOCK TABLES
WTF?
संपादित
SET AUTOCOMMIT = 0
-> ;
Query OK, 0 rows affected (0.00 sec)
mysql> LOCK TABLES radcheck WRITE;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM radcheck WHERE id NOT IN (SELECT id FROM radcheck WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1);
ERROR 1100 (HY000): Table 'radcheck' was not locked with LOCK TABLES
mysql> LOCK TABLES radcheck READ;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM radcheck WHERE id NOT IN (SELECT id FROM radcheck WHERE attribute = 'Password' GROUP BY UserName HAVING COUNT(*) > 1);
ERROR 1100 (HY000): Table 'radcheck' was not locked with LOCK TABLES
पीडी: क्वेरी ठीक काम करता है अगर मैं तालिका को लॉक नहीं। पीडी: यह केवल एक examply टीआई सवाल को सरल बनाता है .. असली जीवन में एक DELETE है ...
मेरा उत्तर जाँच http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html
भीतरी मेज पर
परीक्षण किया नमूना एक उपनाम दे। आपको सभी तालिकाओं को उपनाम देना होगा। और उपनाम तालिका को उस उपनाम के साथ भी लॉक करने की आवश्यकता है –