我正在使用 Sybase SQL Anywhere 12。假设我有一个 Table 用户,与它有以下连接:
conn_name conn_id user_id table_type creator table_name index_id lock_class lock_duration lock_type row_identifier
SQL_DBC_a2a1060 3193 DBA BASE DBA user (NULL) Row Transaction WriteNoPK 37431476262
SQL_DBC_a2a1060 3193 DBA BASE DBA user (NULL) Row Transaction Intent 45309427737
SQL_DBC_a2a1060 3193 DBA BASE DBA user (NULL) Row Transaction WriteNoPK 45309427737
SQL_DBC_a2a1060 3193 DBA BASE DBA user (NULL) Row Transaction Intent 37399035938
SQL_DBC_a2a1060 3193 DBA BASE DBA user (NULL) Row Transaction WriteNoPK 37399035938
SQL_DBC_a2a1060 3193 DBA BASE DBA user (NULL) Row Transaction Intent 37399035939
如果我现在要从 Sybase SQL Anywhere 中选择 * FROM 用户,我将按预期获取所有行和数据。
但是,如果我要在 OpenSuse 11.4 上使用 iSQL 中的 DBA 用户触发相同的 SQL 语句,则语句会运行并且我会收到结果,直到将要选择的行设置了 WriteNoPK-Lockflag。该声明比陈述以下错误:
服务器消息号=8405 严重性=21 状态=0 行=0 文本=SQL Anywhere 错误 -210: 用户 'XYZ' 锁定了 'user' 中的行,SQL: 'SELECT * FROM user'
即使该行是 WriteNoPK-Locked,是否有可能读取/选择?
非常感谢,马克斯