标签: sql-insert

SQL MsAccess将select嵌入到INSERT语句中以获取某些特定值

我有两张桌子:艺术家和工作.

艺术家是画家与ArtistID,FirstName和LastName的关系.

作品是他们的绘画与列WorkID,Title和ArtistID的关系.

现在,我的艺术家关系有数据,我现在正在向Work表插入值.WorkID是一个计数器,所以没有问题.我想用一些东西

INSERT INTO Work (Title, ArtistID)
VALUES('Toledo', SELECT ArtistID FROM Artist WHERE FirstName='Joan');
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用或接受Select语句作为插入的一部分.我该怎么办?

sql ms-access ms-access-2007 sql-insert

4
推荐指数
1
解决办法
4825
查看次数

1292:日期时间值不正确:''对于第1行的列'TERM_DATE'

我正在尝试将数据从excel表加载到Windows 8.1上的MYSQL 5.6下面的表中,我收到"日期时间值不正确:"错误.

术语日期列是DATETIME数据类型,并且数据在excel表中具有空值,我试图将其插入表中.

我做了一些研究,发现问题出在SQL严格模式上.但我无法弄清楚如何禁用或修改SQL严格模式.

我其实试过这个SET SESSION sql_mode='ALLOW_INVALID_DATES'但没有运气.

有人说在安装目录中编辑my.ini文件会有所帮助,但我无法在安装目录中找到它.

任何人都可以帮我解决这个问题.

create table EMPLOYEE(EMP_ID integer(10),
EMP_NAME char(25),
SALARY integer(25),
START_DATE datetime,
TERM_DATE datetime DEFAULT '1900-01-01',
PRIMARY KEY (EMP_ID));
Run Code Online (Sandbox Code Playgroud)

错误信息:

15:23:08    INSERT INTO `mith`.`EMPLOYEE` (`EMP_ID`, `EMP_NAME`, `SALARY`, `START_DATE`, `TERM_DATE`) VALUES ('26', 'Will Banker', '90000', '00:00.0', '')  1292: Incorrect datetime value: '' for column 'TERM_DATE' at row 1  
Run Code Online (Sandbox Code Playgroud)

mysql sql datetime sql-insert strict-mode

4
推荐指数
2
解决办法
2万
查看次数

插入执行格式 Postgresql 字符串

我想创建一个函数来更新表。

我正在尝试运行它:

SELECT insert_function('asda', 1 ,1 , 'asd', 1)
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

LINE 3 VALUES("asda","1","1","asd","1") 列不存在。

当我尝试 rot 运行时:

SELECT insert_function('1', 1 ,1 , '1', 1) 在 """"""" 附近的零长度分隔标识符

第 3 行 VALUES(""1"","1","1",""1"","1")(^在第一项)

CREATE TABLE IF NOT EXISTS commits (
    id SERIAL PRIMARY KEY, 
    goo CHAR(64) NOT NULL, 
    foo INTEGER NOT NULL, 
    bla INTEGER NOT NULL, 
    ma CHAR(512) NOT NULL, 
    fgt INTEGER NOT NULL
);

CREATE OR REPLACE FUNCTION insert_function(goo char(64), foo INTEGER, bla INTEGER, ma CHAR(512), fgt INTEGER)
  RETURNS VOID AS …
Run Code Online (Sandbox Code Playgroud)

sql postgresql execute sql-insert postgresql-9.3

4
推荐指数
2
解决办法
7826
查看次数

在红移中作为选择插入

我有一张桌子 emp -

empno int(5) identity(1,1),
ename varchar(50) default '-0',
deptname varchar(50) default '-0'
Run Code Online (Sandbox Code Playgroud)

当我使用语句时 -

insert into emp(ename, deptname) select ename, deptname from emp1;
Run Code Online (Sandbox Code Playgroud)

我从 emp1 获取所有值,但空值不是-0null.

是什么原因 ?

amazon-web-services sql-insert amazon-redshift

4
推荐指数
1
解决办法
1万
查看次数

INSERT 触发器带有“ON CONFLICT DO NOTHING”

我在 Postgres 9.5+ 中有一个声明,但由于键冲突(我已在 INSERT 上INSERT设置),INSERT 有时实际上不会发生。ON CONFLICT DO NOTHING

如果发生这种INSERT情况,那么触发器当然会运行。但是,如果INSERT由于关键冲突而没有发生,触发器是否仍然会运行?

这取决于它是aBEFORE还是AFTER触发器?

sql postgresql triggers upsert sql-insert

4
推荐指数
1
解决办法
4843
查看次数

如何在SQLite中插入新行(“ \ n”)字符?

在尝试插入类似内容时:

"Hello\nWorld"
Run Code Online (Sandbox Code Playgroud)

SQLite抛出类似以下错误:

消息:无法识别的令牌:“'Hello”;“(还有其他一些错误)

即使我将上述字符串转换为"Hello''\nWorld""Hello\"\n\"World",这些转义字符序列在这种情况下也不起作用。

当前正在使用C ++语言,我将像其他任何简单字符串列一样插入此列。我尝试了以上转义序列(即使我在Internet上阅读过,它们也无法使用\n)。

如何在SQLite DB中插入换行符和其他此类特殊字符?

c++ sqlite newline sql-insert

4
推荐指数
1
解决办法
3899
查看次数

SQL Server 插入没有指定列

我有一个带有自动生成的 ID 列的表(仅此而已!)

CREATE TABLE [dbo].[EmailGroup](
    [EmailGroupGuid] [uniqueidentifier] NOT NULL 
    CONSTRAINT [PK_EmailGroup] PRIMARY KEY CLUSTERED ([EmailGroupGuid] ASC)
) ON [PRIMARY]


ALTER TABLE [dbo].[EmailGroup] 
    ADD  CONSTRAINT [DF_EmailGroup_EmailGroupGuid]  DEFAULT (newsequentialid()) FOR [EmailGroupGuid]
Run Code Online (Sandbox Code Playgroud)

我想插入到这个表中并提取生成的 ID。但是,我不知道是否可能。它似乎在抱怨缺少值/列。

DECLARE @Id TABLE (Id UNIQUEIDENTIFIER)

INSERT INTO EmailGroup
OUTPUT inserted.EmailGroupID INTO @Id
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点吗?我的意思是我可以在表中添加一个虚拟列并轻松执行此操作:

INSERT INTO EmailGroup (Dummy)
OUTPUT inserted.EmailGroupID INTO @Id
VALUES (1)
Run Code Online (Sandbox Code Playgroud)

但我真的不想。
我也可以指定我自己的 ID 并插入它,但我又不想这样做。

sql t-sql sql-server sql-insert

4
推荐指数
1
解决办法
1191
查看次数

错误:自定义域中不存在运算符

我的 Postgres 12 数据库架构中有声明:

CREATE TYPE something_e AS ENUM('OPEN', 'CLOSE');
CREATE DOMAIN something_t AS something_e NOT NULL DEFAULT 'OPEN';
CREATE TABLE xxx (
...
something something_t,
...
);
Run Code Online (Sandbox Code Playgroud)

看来 INSERT 工作得很好。但 select - 不会:

INSERT INTO yyy (...) VALUES (..., (SELECT ID FROM xxx WHERE ... AND something='OPEN'));
Run Code Online (Sandbox Code Playgroud)

这里我得到一个错误:

“错误:运算符不存在:something_t = 未知”。

我尝试将类型转换为something_e, tosomething_t::没有成功。我什至收到类似“操作符不存在:something_t = Something_t”之类的错误!我最初的想法是减少代码的重复,因此something_t基于 enum 引入这个新域something_e,但是现在如何使用这样的标准进行选择?INSERT 似乎something_t自动将“OPEN”字符串转换为...这种情况的正确语法是什么?

sql postgresql where-clause sql-insert

4
推荐指数
1
解决办法
2167
查看次数

优化 Spring Boot 中的数据获取和插入

我的 CSV 文件中有 270000 条记录,其中包含 user_id、book_ISBN 和 book_ rating 列,我需要将这些记录插入到多对多表中。我使用 openCSV 库解析数据,结果是一个列表。

public List<UserRatingDto> uploadRatings(MultipartFile file) throws IOException{
        BufferedReader fileReader = new BufferedReader(new
                InputStreamReader(file.getInputStream(), "UTF-8"));

        List<UserRatingDto> ratings = new CsvToBeanBuilder<UserRatingDto>(fileReader)
                .withType(UserRatingDto.class)
                .withSeparator(';')
                .withIgnoreEmptyLine(true)
                .withSkipLines(1)
                .build()
                .parse();
        return ratings;
    }
Run Code Online (Sandbox Code Playgroud)

这不存在性能问题,解析大约需要 1 分钟。但是,为了将它们插入到表中,我需要从数据库中获取书籍和用户以形成关系,我尝试使该方法与 @Async 注释异步,我尝试了并行流,我尝试将对象放入放入堆栈并使用 saveAll() 批量插入,但仍然花费太多时间。

 public void saveRatings(final MultipartFile file) throws IOException{
        List<UserRatingDto> userRatingDtos = uploadRatings(file);

        userRatingDtos.parallelStream().forEach(bookRating->{
            UserEntity user = userRepository.findByUserId(bookRating.getUserId());
            bookRepository.findByISBN(bookRating.getBookISBN()).ifPresent(book -> {
                BookRating bookRating1 = new BookRating();
                bookRating1.setRating(bookRating.getBookRating());
                bookRating1.setUser(user);
                bookRating1.setBook(book);
                book.getRatings().add(bookRating1);
                user.getRatings().add(bookRating1);
                bookRatingRepository.save(bookRating1);
            });

        });
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在所拥有的,有什么我可以改变以使其更快吗?

database bulkinsert sql-insert spring-data-jpa spring-boot

4
推荐指数
1
解决办法
4319
查看次数

在PostgreSQL中执行直接SQL后“INSERT 0 1”是什么意思?

当我使用 执行包含 SQL 命令的文件时psql -f,我得到如下输出(已截断):

CREATE DOMAIN
CREATE TABLE
CREATE TABLE
INSERT 0 1
INSERT 0 1
INSERT 0 1
Run Code Online (Sandbox Code Playgroud)

数字0和1是什么意思?(我认为1是修改的行数。但是0?)我在PostgreSQL的官方文档或其他任何地方都找不到它。

postgresql sql-insert

4
推荐指数
1
解决办法
3151
查看次数