本文整理汇总了Python中querybuilder.query.Query.update方法的典型用法代码示例。如果您正苦于以下问题:Python Query.update方法的具体用法?Python Query.update怎么用?Python Query.update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类querybuilder.query.Query
的用法示例。
在下文中一共展示了Query.update方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_update_multiple_rows
# 需要导入模块: from querybuilder.query import Query [as 别名]
# 或者: from querybuilder.query.Query import update [as 别名]
def test_update_multiple_rows(self):
query = Query().from_table(
table=Account,
fields=[
'id',
'user_id',
'first_name',
'last_name'
]
)
rows = [
[1, 1, 'Test', 'User'],
[2, 2, 'Test2', 'User2']
]
sql, sql_params = query.get_update_sql(rows)
self.assertEqual(
sql,
(
'UPDATE tests_account '
'SET user_id = new_values.user_id, '
'first_name = new_values.first_name, '
'last_name = new_values.last_name '
'FROM (VALUES (%s, %s, %s, %s), (%s, %s, %s, %s)) '
'AS new_values (id, user_id, first_name, last_name) '
'WHERE tests_account.id = new_values.id'
)
)
self.assertEqual(sql_params[0], 1)
self.assertEqual(sql_params[1], 1)
self.assertEqual(sql_params[2], 'Test')
self.assertEqual(sql_params[3], 'User')
self.assertEqual(sql_params[4], 2)
self.assertEqual(sql_params[5], 2)
self.assertEqual(sql_params[6], 'Test2')
self.assertEqual(sql_params[7], 'User2')
query.update(rows)
sql = self.logger.get_log()[0]['sql']
self.assertEqual(
sql,
(
"UPDATE tests_account "
"SET user_id = new_values.user_id, "
"first_name = new_values.first_name, "
"last_name = new_values.last_name "
"FROM (VALUES (1, 1, 'Test', 'User'), (2, 2, 'Test2', 'User2')) "
"AS new_values (id, user_id, first_name, last_name) "
"WHERE tests_account.id = new_values.id"
)
)
示例2: test_update_null_numbers
# 需要导入模块: from querybuilder.query import Query [as 别名]
# 或者: from querybuilder.query.Query import update [as 别名]
def test_update_null_numbers(self):
"""
Verifies that null values can be bulk updated
"""
order1 = G(Order, revenue=10)
order2 = G(Order, revenue=20)
order3 = G(Order, revenue=30)
query = Query().from_table(table=Order, fields=['id', 'revenue'])
logger = Logger()
logger.start_logging()
rows = [[order1.id, None], [order2.id, None], [order3.id, 3000]]
query.update(rows)
orders = list(Order.objects.order_by('id'))
self.assertIsNone(orders[0].revenue)
self.assertIsNone(orders[1].revenue)
self.assertEqual(3000, orders[2].revenue)
示例3: test_update_all_nulls
# 需要导入模块: from querybuilder.query import Query [as 别名]
# 或者: from querybuilder.query.Query import update [as 别名]
def test_update_all_nulls(self):
"""
Verifies that the sql is modified when all values for a field are null. For whatever reason,
postgres doesn't handle this the same when all values are null
"""
order1 = G(Order, revenue=10, margin=5)
order2 = G(Order, revenue=20, margin=10)
order3 = G(Order, revenue=30, margin=15)
query = Query().from_table(table=Order, fields=['id', 'revenue', 'margin'])
logger = Logger()
logger.start_logging()
rows = [[order1.id, None, 50], [order2.id, None, 100], [order3.id, None, 150]]
query.update(rows)
orders = list(Order.objects.order_by('id'))
self.assertIsNone(orders[0].revenue)
self.assertIsNone(orders[1].revenue)
self.assertIsNone(orders[2].revenue)