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。
示例
使用 CAST() 函数及 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'位图图像格式