Navicate连接MySeq之后使用存储语句

Navicate是什么?
答:“Navicat是一个可多重连接的数据库管理工具,它可以连接到MySQL、Oracle、PostgreSQL、SQLite、SQL Server和/或MariaDB数据库,让数据库管理更加方便。”

使用Navicate在已存默认值的表中插入datetime类型数据为什么报错?
答:根据初始默认值,给datetime进行了复制0000 但是datetime不支持这种无效的数据。

//-- 使用存储语句创建删除表格


CREATE DEFINER=`skip-grants user`@`skip-grants host` PROCEDURE `CreateTableTest`()
BEGIN
DROP TABLE IF EXISTS `user`;
	CREATE TABLE IF NOT EXISTS `tbl`(
`id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author` VARCHAR(40) NOT NULL,
`date` DATE,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

END

//-- 使用存储语句在表格中插入项

CREATE DEFINER=`skip-grants user`@`skip-grants host` PROCEDURE `testK`()
BEGIN
      DECLARE dt datetime DEFAULT '2016-04-18';
	    DECLARE n int DEFAULT 25;
        WHILE(n<27) DO
				    set dt = '2006-04-18';
				
            INSERT INTO rcs(_id,so_id,sns_id,epc,rng,az,el,rcs,frq,ctm,utm) VALUES(n,FLOOR(1+(RAND()*6)),FLOOR(1+(RAND()*6)),dt,FLOOR(1+(RAND()*6)),0,FLOOR(1000+(RAND()*100)),FLOOR(10+(RAND()*6)),21,'2016-04-19','2016-04-28');  
        set n = n + 1;
        END WHILE;#Routine body goes here...
END

//-- SQL语句基础
可以参考菜鸟教程

CREATE DEFINER=`skip-grants user`@`skip-grants host` PROCEDURE `testLXK`()
BEGIN

		
      DECLARE dt_epc,dt_ctm,dt_utm datetime DEFAULT  NOW();
-- 			DECLARE dt_ctm datetime DEFAULT  NOW();
-- 			DECLARE dt_utm datetime DEFAULT  NOW();
	    DECLARE n int DEFAULT 57;
			#set dt = DATE("2017-06-15"); 
			#set dt = '2006-04-18 09:34:21';

        WHILE(n<68) DO
					set dt_epc =  DATE_ADD(dt_epc, INTERVAL -2 DAY); 
					set dt_ctm = DATE_ADD(dt_ctm, INTERVAL -3 HOUR); 
					set dt_utm = DATE_ADD(dt_utm, INTERVAL 15 MINUTE); 
					
					IF n<68 THEN
					  #UPDATE 语句用于更新表中已存在的记录,WHERE 子句规定哪条记录或者哪些记录需要更新。如果省略了 WHERE 子句,所有的记录都将被更新!
						UPDATE rcs 
						SET so_id=888+n, sns_id=999 
						WHERE _id=n;
					ELSE
						INSERT INTO rcs(_id,so_id,sns_id,epc,rng,az,el,rcs,frq,ctm,utm) VALUES(n,FLOOR(1+(RAND()*6)),FLOOR(1+(RAND()*6)),dt_epc,FLOOR(1+(RAND()*6)),0,FLOOR(1000+(RAND()*100)),FLOOR(10+(RAND()*6)),21, dt_ctm,dt_utm);  
					END IF;



				    
				   
-- 				  #这样可以
-- 					set dt =  DATE_ADD(dt, INTERVAL 10 DAY);  
-- 					#这样不可以	
--           #dt = SELECT DATE_ADD(dt, INTERVAL 10 DAY);  
-- 				  #这样可以		
-- 					SELECT DATE_ADD(dt, INTERVAL 15 MINUTE);
-- 					SELECT DATE_ADD(dt, INTERVAL -3 HOUR);
-- 					SELECT DATE_ADD(dt, INTERVAL -3 MONTH);

        set n = n + 1;
        END WHILE;#Routine body goes here...
				
				
				#查找语句
				#读取数据表的信息, SQL 语句从 "rcs" 表中选取所有列
				#SELECT * FROM rcs;
				#SELECT so_id FROM rcs;
				#仅从 "rcs" 表的 "so_id" 列中选取唯一不同的值,也就是去掉 "so_id" 列重复值:
				#SELECT DISTINCT so_id FROM rcs;
				#WHERE 子句用于提取那些满足指定条件的记录。
				#SELECT * FROM rcs WHERE so_id=6;
				#Select * from rcs where so_id > 6 or sns_id > 2;
				#查询 rcs 表中 az 列中的空值。
				#Select * from rcs where az is null;
				#between and (在 之间的值)
				#Select * from rcs where el between 1 and 3000;
				#ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序
				#SELECT * FROM rcs ORDER BY so_id;
				
				#插入语句
				#INSERT INTO 语句可以有两种编写形式。
				#第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
				#INSERT INTO rcs VALUES(101,FLOOR(1+(RAND()*6)),FLOOR(1+(RAND()*6)),'2022-03-22',FLOOR(1+(RAND()*6)),0,FLOOR(1000+(RAND()*100)),FLOOR(10+(RAND()*6)),21,'2016-04-19',NOW());  
				#第二种形式需要指定列名及被插入的值:
#INSERT INTO rcs(_id,so_id,sns_id,epc,rng,az,el,rcs,frq,ctm,utm) VALUES(100,FLOOR(1+(RAND()*6)),FLOOR(1+(RAND()*6)),'2022-02-22',FLOOR(1+(RAND()*6)),0,FLOOR(1000+(RAND()*100)),FLOOR(10+(RAND()*6)),21,'2016-04-19',NOW());  
	
				#在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:
				#DELETE FROM rcs;
				#或
				#DELETE * FROM rcs;
				
				
				#SELECT TOP 子句用于规定要返回的记录的数目。
				#注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。
				#从 rcs 表中选取头两条记录:
				#SELECT * FROM rcs LIMIT 2;
	
END

https://www.runoob.com/mysql/mysql-drop-database.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值