Sie müssen jeden Tisch sperren , die Sie bis zum LOCK
verwenden möchten es ist veröffentlicht worden. Sie können completely_different_table_2
angeben nur ein READ LOCK
, wodurch andere Prozesse diese Tabelle lesen können, während sie gesperrt ist:
LOCK TABLES table_1 WRITE, completely_different_table_2 READ;
PS:MySQL hat einen Grund dazu. Wenn Sie ein LOCK
anfordern , möchten Sie einen konsistenten Zustand Ihrer Daten einfrieren. Wenn Sie Daten aus completely_different_table_2
lesen in Ihrem LOCK
, Ihre Daten werden in table_1
geschrieben wird in gewisser Weise von dieser anderen Tabelle abhängen. Daher möchten Sie nicht, dass jemand diese Tabelle während Ihres LOCK
ändert und fordern Sie ein READ LOCK
an auch für diesen zweiten Tisch. Wenn Ihre Daten in table_1
geschrieben werden nicht von der anderen Tabelle abhängt, fragen Sie sie einfach nicht bis zum LOCK
ab freigegeben.