# UPDATE Changes the values of the specified columns based on the `assign` argument (`identifier=expression`) in all rows that satisfy the condition in the `WHERE` clause. ```sql UPDATE table_name SET assign [, assign ]* [ WHERE booleanExpression ] ``` #### Example ``` UPDATE UFOs SET shape='ovate' where shape='eggish'; ``` Currently, HEAVY.AI does not support updating a geo column type (POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, or MULTIPOLYGON) in a table. ## Update Via Subquery You can update a table via subquery, which allows you to update based on calculations performed on another table. **Examples** ```sql UPDATE test_facts SET lookup_id = (SELECT SAMPLE(test_lookup.id) FROM test_lookup WHERE test_lookup.val = test_facts.val); ``` ```sql UPDATE test_facts SET val = val+1, lookup_id = (SELECT SAMPLE(test_lookup.id) FROM test_lookup WHERE test_lookup.val = test_facts.val); ``` ```sql UPDATE test_facts SET lookup_id = (SELECT SAMPLE(test_lookup.id) FROM test_lookup WHERE test_lookup.val = test_facts.val) WHERE id < 10; ``` ## Cross-Database Queries In Release 6.4 and higher, you can run UPDATE queries across tables in different databases on the same HEAVY.AI cluster without having to first connect to those databases. To execute queries against another database, you must have ACCESS privilege on that database, as well as UPDATE privilege. #### Example Update a row in a table in the `my_other_db` database: ```sql UPDATE my_other_db.customers SET name = 'Joe' WHERE id = 10; ```