FOR UPDATE 子句
FOR UPDATE
子句通过 SQL 光标锁定记录来进行定位更新或定位删除。格式为:
FOR UPDATE [OF column_expressions]
column_expressions
是您要更新的数据库表中的字段名列表,由逗号分隔。column_expressions
是可选的,可以忽略。
返回员工数据库中 SALARY
字段值大于 $20,000 的所有记录。
SELECT * FROM emp WHERE salary > 20000 FOR UPDATE OF last_name, first_name, salary
在获取每个记录时,会对其进行锁定。如果记录已更新或删除,在您提交更改之前会保持锁定。否则,在您获取下一个记录时释放锁定。
使用 |
示例 SQL |
文本常量 |
复制
|
数字常量 |
复制
|
日期常量 |
复制
|
时间常量 |
复制
|
时间戳常量 |
复制
|
文本列 |
复制
|
数字列 |
复制
|
日期列 |
复制
|
时间列 |
复制
|
时间戳列 |
复制
|
BLOB 列 |
复制
注释 BLOB 是 FileMaker Pro 数据库文件容器字段。 |
通配符 * |
复制
|
示例的注释
column
是对 FileMaker Pro 数据库文件中字段的引用。(字段可以包含许多非重复值。)
星号 (*) 通配符是“所有内容”的简略表示。对于示例 SELECT * FROM Salespeople
,结果是 Salespeople
表中的所有列。对于示例 SELECT DISTINCT * FROM Salespeople
,结果是 Salespeople
表中的所有唯一行(无重复项)。
-
FileMaker 软件没有存储空字符串的数据,因此以下查询始终不返回记录:
复制SELECT * FROM test WHERE c =''
SELECT * FROM test WHERE c <>'' -
如果将
SELECT
与二进制数据一起使用,则必须使用GetAs()
函数来指定要返回的流。有关更多信息,请参阅检索容器字段的内容:CAST() 函数和 GetAs() 函数一节。
检索容器字段的内容:CAST() 函数和 GetAs() 函数
您可以从容器字段中检索文件引用信息、二进制数据或特定文件类型的数据。
-
要从容器字段检索文件引用信息,例如某个文件的文件路径、图片或视频,可以将
CAST()
函数与SELECT
语句一起使用。 -
如果文件数据或 JPEG 二进制数据存在,则具有
GetAs(field name, 'JPEG')
的SELECT
语句会检索二进制形式的数据;否则具有字段名称的SELECT
语句会返回NULL
。
使用 C
AST()
函数及 SELECT
语句来检索文件引用信息。
SELECT CAST(Company_Brochures AS VARCHAR) FROM Sales_Data
在本示例中,如果您:
-
使用 FileMaker Pro 将文件插入容器字段,但仅存储文件的引用,
SELECT
语句会以类型SQL_VARCHAR
检索文件引用信息。 -
使用 FileMaker Pro 将文件的内容插入容器字段,
SELECT
语句会检索文件的名称。 -
将文件从其他应用程序导入容器字段,
SELECT
语句会显示“?”(文件在 FileMaker Pro 中显示为 Untitled.dat)。
您可以使用 SELECT
语句和 GetAs()
函数通过以下方法检索二进制形式的数据:
-
使用
GetAs()
函数及DEFAULT
选项时,检索的是容器的默认数据流,不需要明确定义流类型。复制SELECT GetAs(Company_Brochures, DEFAULT) FROM Sales_Data
-
要从容器检索单个流类型,根据在 FileMaker Pro 中将数据插入容器字段的方式,将
GetAs()
函数与文件的类型一起使用。如果使用“插入”>“文件”命令插入数据,则在
GetAs()
函数中指定'FILE'
。复制SELECT GetAs(Company_Brochures, 'FILE') FROM Sales_Data
如果使用“插入”>“图片”命令插入数据,从剪贴板拖放或粘贴,指定在下表中列出的文件类型之一,例如
'JPEG'
。复制SELECT GetAs(Company_Logo, 'JPEG') FROM Company_Icons
文件类型
说明
'GIFf'
图形交换格式
'JPEG'
摄影图像
'TIFF'
数字图像的光栅文件格式
'PDF '
可移植文档格式
'PNGf'
位图图像格式