对于学校作业,我们需要将MySQL表中的行数保持在100以下。新的行必须留着。我试过用扳机,但没有成功。
CREATE TRIGGER delete_rows
AFTER INSERT ON `check`.log
FOR EACH ROW
BEGIN
IF(SELECT COUNT(*) FROM `check`.log)>100
THEN
DELETE FROM `check`.log LIMIT 1;
END IF;
END
这导致以下错误:
错误1442 (HY000):无法更新存储函数/触发器中的表“日志”,因为调用此存储函数/触发
我使用下面的代码在表中复制一行,并在同一个表中创建一个新行,但使用相同的数据和唯一的主键。我正在使用mysql-连接器-python模块运行代码。
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
此代码运行在生产数据库上,但在本地测试数据库
我有这个sql语句来删除一些行:
DELETE
FROM
`user_group_membership` g
INNER JOIN `users` u ON u.user_id = g.user_id
WHERE
u.`user_id` NOT IN (?, ?, ?)
AND g.group_id IN (9, 6)
AND u.`lifetime_supporter` = 0
AND u.supporter_type = 'special'
我得到一个SQL错误:"SQL SQLSTATE42000:语法错误或访问冲突: 1064您的MyS
为什么我的MySQL查询不能工作?
查询:
DELETE FROM jos_community_awards a
LEFT JOIN jos_community_users u
ON a.userId = u.userid WHERE a.points > u.points;
错误:
错误1064 (42000):您的SQL语法出现了错误;请检查>对应于MySQL服务器版本的手册,以获得在a.userId = u.userid上的“a.userId=u.userid上的左联接jos_community_users u”附近使用的右语法,其中a.points >u.poi位
我正在尝试为要在MySQL中删除的行编写代码。
我不确定如何做到这一点,所以我从另一个网站上学习了一些代码:
语法:
<?php
$personID=$_GET["q"];
if ($personID<="0"){echo( "<center><h3><a href=\"#\" onclick=\"window.close(); return false\">NO ID ERROR CLICK THIS TO RETRY CLOSE WINDOW</a></
如何为每个site_id选择5行,1行,这将引发一个错误
SELECT DISTINCT site_id, *
FROM deal
WHERE site_id IN (2, 3, 4, 5, 6)
ORDER BY id
DESC LIMIT 5
您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以获得使用site_id in (2、3、4、5、6)顺序的正确语法。
我正在尝试删除表2中的一行,其中的id是从表1查询中复制的。我想从表2和表1中删除此行,但我遇到了一个问题,即我使用的命令都有效,但似乎没有从表中删除。我相信这可能是因为表之间的关系(我使用mysql工作台进行DB设计)
我使用了这个命令:
delete
from doctorsTable
where Users_idUser in (select Users_idUser from Users where idUser = 20)
关系是这样的:
如前所述,我正在尝试使用Users_idUser=20从doctorsTable中删除行,并自动从Users表idUse
在MySQL中,我使用LOAD数据本地INFILE,如下所示:
LOAD DATA LOCAL INFILE 'code.csv'
INTO TABLE MyDB.code FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (code_id,code_name,code_date);
我得到这样的回应:
查询确定,1行受影响,2次警告(1.80秒)记录: 665893删除:0跳过: 665892警告:1
我正在使用Ubuntu
我有两个表,一个用于工作截止日期,另一个用于描述工作。每个作业都可以有一个状态,有些状态意味着作业的截止日期必须从另一个表中删除。
我可以使用LEFT JOIN轻松地SELECT符合我的标准的工作/截止日期
SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = '
我有一个MySql表(Pin_codes)。首先,我想从这个表中选择200行并导出它们,然后删除这200行。
如果这个表的If是连续的,我可以这样做:
SELECT * FROM pin_codes WHERE id<200 and id>1;
DELETE FROM pin_codes WHERE id<200 and id>1;
但是ID是这样的:
52138
52139
52141
52142
52144
52147
52148
52157
52158
...
我怎么能这么做?
我需要使用反向工程MySQL创建脚本导入命令导入我的mod-ap.sql文件。当我这样做时,我在两个位置(10,0)和(43,0)收到一个错误。错误:")“在此位置无效,应为标识符。
7-15行;
DROP DATABASE IF EXISTS ap;
CREATE DATABASE ap;
USE ap;
CREATE TABLE IF NOT EXISTS vendors (
vendorID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, -- PG 551 : 1-2 per professor
vendorN
我尝试创建应该删除重复表行的mysql事件。
这是我的查询
DELETE FROM locations
WHERE id NOT IN (SELECT id
FROM locations
GROUP BY acc_id,`date`)
我发现了一个错误:
Error Code: 1093
You can't specify target table 'locations' for update in FROM clause.
如何更改查询以使其工作?
当我删除MySQL表中的最后一行,然后插入一个新的行时,为什么id仍然会增加,就好像第一行没有被删除一样?是否有办法防止这种情况发生,这样就可以像原来的行不存在一样?下面是一个例子
Teachers
id first_name
0 joe
1 mike
2 jim
如果我删除"jim“,然后插入"bob”,则bob的id为3,并且没有id为2的条目。
DELETE FROM programSchedule
LEFT JOIN program ON programSchedule.pid = program.id
WHERE program.channel_id = 10
我知道这个错误:
#1064 -您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以便在第1行使用接近“programSchedule.pid =program.id上的左联接程序”的语法。
为什么?
我是PHP和MySQL的新手,在我正在从事的学习项目中遇到了一些小麻烦。
每当我试图创建一个表
CREATE TABLE transactions(
id int NOT NULL AUTO_INCREMENT,
location varchar(50) NOT NULL,
description varchar(50) NOT NULL,
category varchar(50) NOT NULL,
amount double(10) NOT NULL,
type varchar(6) NOT NULL,
notes varchar(512),
receipt int(10),
)
我收到
我对我的SELECT查询的行为感到困惑。意外地,我将.csv文件的标题行读入到我的表中。这意味着表中现在有一行,它在每个对应列中都有列值。
但像这样的SELECT
select * from `mytablename` where segmentering=`segmentering`;
返回表中的所有行。
为什么MySQL忽略这个条件?
下面的mysql查询
select * from PrivateData.Table1 AS m
LEFT JOIN
PrivateData.Table2 AS i
ON m.GUID = i.OutId;
在此查询期间,工作正常:
delete m,i from PrivateData.Table1 AS m
LEFT JOIN
PrivateData.Table2 AS i
ON m.GUID = i.OutId;
给出错误:
错误1046 (3D000):没有选择的数据库
为什么是这种情况?否则如何从表中删除选定的行?
P.S.:我不是mysql查询方面的专家。