JDBC SQL DML Syntax
Here are the SQL DML commands we currently support:
A normal SQL UPDATE statement, including support for expressions that refer to other columns:
A normal SQL DELETE statement:
SELECT behaves as per Salesforce SOQL, with the following enhancements:
- Support for "SELECT *". This is almost priceless!
- Support for column aliases via "as"
- Support for "count(*)", as well as Salesforce-native "count()" and "count(id)".
- Patches illegal SOQL to valid SQL, ie: "WHERE ID = null" to "WHERE 0 = 1".
We haven't rewritten the Salesforce SQL engine, and still inherit the other Salesforce-supplied SOQL SELECT limitations, including no support for normal SQL joins.
We also don't support SOQL's nested SELECT functionality, because it doesn't really fit into the relational model. eg:
Data Type Literals
When using string literals in commands please adhere to the following formats:
UPDATE, DELETE and SELECT all depend on the SOQL WHERE clause, so they inherit the limitations provided by Salesforce. In particular you cannot write a WHERE clause that compares one column to another, eg: