在mysql中创建了一个表,当想插入数据的时候,一直提示一个错误,望得到解决。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mysql中创建了一个表,当想插入数据的时候,一直提示一个错误,望得到解决。相关的知识,希望对你有一定的参考价值。

错误为:Column count doesn't match value count at row 1

创建表的语句如下:
create table daily(
dailyno int auto_increment primary key,
dailyname nvarchar(10) not null,
dailysort nvarchar(20),
userno char(10),
begintime datetime,
overtime datetime,
price decimal(6,2) check(price>0),
dailystate int check(dailystate=0 or dailystate=1)
remarks nvarchar(50),
foreign key(userno) references users(userno)
);

插入数据语句(两条都不好用):

insert into daily (dailyname,dailysort,userno,begintime,overtime,price,dailystate,remarks)
values('早餐','日常','0001','2011-3-25','2011-3-26',11.00,'1111111');

insert into daily values(00001,'早餐','日常','0001','2011-3-25','2011-3-26',11.00,'1111111');

八个字段你只给了7个值,字段和值的数量不匹配,dailystate没有赋值改成:
insert into daily (dailyname,dailysort,userno,begintime,overtime,price,dailystate,remarks)
values('早餐','日常','0001','2011-3-25','2011-3-26',11.00,1,'1111111');
就可以了。
参考技术A 1.两条insert语句的字段对不上

2.看看外键userno是否在users表中有对应的主键

另外 这种问题把报错信息发上来
大家一看就知道了

BigQuery - 在插入表时调用查询

【中文标题】BigQuery - 在插入表时调用查询【英文标题】:BigQuery - invoke query upon insert to a table 【发布时间】:2021-02-16 13:39:46 【问题描述】:

这是我的用例。

一个新的 CSV 文件被上传到 GCS 存储桶中,接下来数据被插入到 BigQuery 表中,在数据进入 BigQuery 之后,应该在插入事件时触发后处理查询。

为了实现第一步,我在 Python 中创建了一个云函数,将数据从 GCS 存储桶加载到 BigQuery 表。

我正在为第二步苦苦挣扎,因为 BigQuery 不支持数据库触发器的概念。

现在我正在使用不理想的计划查询,因为即使基础表没有更改,它也会运行。

由于涉及成本,我不愿意使用 Composer,我正在寻找一种简单且经济高效的解决方案。

【问题讨论】:

【参考方案1】:

可以有多种方法来实现这一点。两个简单的可以是:

    您可以使用从 GCS->BQ 加载数据的相同云函数在加载完成时运行附加查询。

    从您的云功能中,您可以在某种类型的队列(Pub/Sub、Redis、RabbitMQ 等)中设置一个唯一标识符,该标识符由您的一个进程以离散的时间间隔轮询,并且在看到任何新条目时,它可以运行后处理查询。这样,第二个进程就不会盲目地触发 BQ 查询,并且总是在看到队列中有新条目时运行。您可以阅读如何发布 Pub/Sub 消息 here。您的其他进程可以是 cron 作业,也可以只是另一个云功能,您可以随时按需触发。

    另一个选项(更原始的选项)可能是在完成将数据加载到 BQ 后,将一个微小的 JSON 文件发送到某个 GCS 存储桶文件夹,其中包含 "status": True 之类的内容。然后绑定另一个云函数,以在将新文件放入该 GCS 存储桶文件夹时立即触发后处理 BQ 查询。

【讨论】:

感谢您的建议,您能否详细说明使用 Pub/Sub 的第二种方式。 我添加了一些细节。 最终我按照你的第一个建议将代码附加到现有的云函数中,结果正是我想要的。【参考方案2】:

作为附加选项考虑:

您的云功能在加载数据后,可以向 PubSub 主题发送一些消息(可能需要一些相关的详细信息)(这将需要几毫秒) - 您修改您的云功能就是这样,并创建一个 PubSub为此目的的主题。

在这个话题的另一边,还有一个云功能,它是自动触发的。您可以开发该云功能并实现您需要的任何功能。

【讨论】:

以上是关于在mysql中创建了一个表,当想插入数据的时候,一直提示一个错误,望得到解决。的主要内容,如果未能解决你的问题,请参考以下文章

您可以在 PHP/MySQL 数据库表的每一行中创建/插入表吗?

我们可以在使用 sequelize js 节点在 mysql 表中插入数据后给时间吗

自动从 Mysql 表中删除的记录

如何Mysql触发器中抛出一个异常

使用java在impala表中插入数据

mysql组合索引与字段顺序