在 SQLite 中声明变量并使用它

Declare variable in SQLite and use it(在 SQLite 中声明变量并使用它)
本文介绍了在 SQLite 中声明变量并使用它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在 SQLite 中声明一个变量并在 insert 操作中使用它.

I want to declare a variable in SQLite and use it in insert operation.

就像在 MS SQL 中一样:

Like in MS SQL:

declare @name as varchar(10)
set name = 'name'
select * from table where name = @name

例如,我需要获取 last_insert_row 并在 insert 中使用它.

For example, I will need to get last_insert_row and use it in insert.

我发现了一些关于绑定的东西,但我并没有完全理解它.

I have found something about binding but I didn't really fully understood it.

推荐答案

SQLite 不支持本机变量语法,但您可以使用内存中的临时表实现几乎相同的效果.

SQLite doesn't support native variable syntax, but you can achieve virtually the same using an in-memory temp table.

我已经在大型项目中使用了以下方法并且效果很好.

I've used the below approach for large projects and works like a charm.

    /* Create in-memory temp table for variables */
    BEGIN;

    PRAGMA temp_store = 2; /* 2 means use in-memory */
    CREATE TEMP TABLE _Variables(Name TEXT PRIMARY KEY, RealValue REAL, IntegerValue INTEGER, BlobValue BLOB, TextValue TEXT);

    /* Declaring a variable */
    INSERT INTO _Variables (Name) VALUES ('VariableName');

    /* Assigning a variable (pick the right storage class) */
    UPDATE _Variables SET IntegerValue = ... WHERE Name = 'VariableName';

    /* Getting variable value (use within expression) */
    ... (SELECT coalesce(RealValue, IntegerValue, BlobValue, TextValue) FROM _Variables WHERE Name = 'VariableName' LIMIT 1) ...

    DROP TABLE _Variables;
    END;

这篇关于在 SQLite 中声明变量并使用它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)