我们有一个用户表,每个用户都有一个唯一的电子邮件和用户名.我们尝试在我们的代码中执行此操作,但我们希望确保用户永远不会使用相同的电子邮件用户名插入(或更新)数据库.我添加了一个BEFORE INSERTTrigger,可防止重复用户的插入.
CREATE TRIGGER [dbo].[BeforeUpdateUser]
ON [dbo].[Users]
INSTEAD OF INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @Email nvarchar(MAX)
DECLARE @UserName nvarchar(MAX)
DECLARE @UserId int
DECLARE @DoInsert bit
SET @DoInsert = 1
SELECT @Email = Email, @UserName = UserName FROM INSERTED
SELECT @UserId = UserId FROM Users WHERE Email = @Email
IF (@UserId IS NOT NULL)
BEGIN
SET @DoInsert = 0
END
SELECT …Run Code Online (Sandbox Code Playgroud) 以下是我的查询
insert into sms (mobile) values ("255786786072")
Run Code Online (Sandbox Code Playgroud)
我在表中"mobile"字段中获得的值是2147483647."mobile"字段的数据类型是varchar(15).
任何建议.
我有一张桌子
CREATE TABLE IF NOT EXISTS `employee` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) DEFAULT NULL,
`SALARY` int(11) DEFAULT NULL,
`DEPT` varchar(10) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Run Code Online (Sandbox Code Playgroud)
如果我为上面的表插入值,就像下面的抛出错误一样
INSERT INTO employee ('NAME', 'SALARY', 'DEPT') VALUES ('user test', 10000, 'ADMIN');
Run Code Online (Sandbox Code Playgroud) 我在下面附上了我的PHP代码.它正确计算累积值并正确构建SQL语句(测试者echo $sql;).然而,进入MySQL的instert声明是不成功的.有任何想法吗?
<?php
ini_set('memory_limit', '500M');
set_time_limit(1800);
$dbh = new mysqli('localhost','user','password','database') or die(mysql_error());
$query = "SELECT * FROM table1 ORDER BY id, date";
$del = "DELETE FROM table2";
$dbh->query($del);
if ($dbh->multi_query($query)){
if ($result = $dbh->store_result()){
$id = 0;
while ($row = $result->fetch_row()){
$date = $row[0];
$cvalue = $row[2];
$id = $row[1];
$cumulative = 0;
// Pull most recent cumulative value
$sql_recent = "SELECT * FROM table2 WHERE id = $id ORDER BY date DESC LIMIT 1";
if ($dbh->multi_query($sql_recent)){
if …Run Code Online (Sandbox Code Playgroud) 我正在使用从第三方源提取的csv文件填充MySQL表.每天都会更新csv,如果列a,b和c的出现已经存在,我想更新MySQL表中的行,否则插入行.我使用load data infile进行初始加载,但我想针对每日csv pull更新.我熟悉INSERT ... ON DUPLICATE,但不熟悉csv导入的上下文.关于如何在INSERT中嵌入LOAD DATA LOCAL INFILE的任何建议... ON DUPLICATE a,b,c - 或者如果这是最好的方法将非常感激.
LOAD DATA LOCAL INFILE 'C:\\Users\\nick\\Desktop\\folder\\file.csv'
INTO TABLE db.tbl
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 lines;
Run Code Online (Sandbox Code Playgroud) 我想使用sqlite3的executemany()插入多个值Python3。
码:
import sqlite3
conn = sqlite3.connect('rssnewsdata.db')
c = conn.cursor()
entries = [
('url1', 1234, 'title1', 'summary1', 'feedurl1'),
('url2', 1235, 'title2', 'summary2', 'feedurl2'),
('url3', 1236, 'title3', 'summary3', 'feedurl3'),
('url4', 1237, 'title4', 'summary4', 'feedurl4')
]
c.executemany('INSERT INTO entries VALUES (?, ?, ?, ?, ?)', entries)
Run Code Online (Sandbox Code Playgroud)
该db文件存在,该表存在,我可以使用Python3到SELECT来自它,所以连接到它是没有问题的。该栏目是TEXT,INTEGER,TEXT,TEXT,TEXT键入。
Python没有报告错误。缺什么?
尝试将一个集合插入到SQL Server 2014中的表中.这是我执行的代码而没有错误但是当我检查我的表时 - 没有添加任何内容.我的集合对象orders不是空的,我可以看到它在调试时有3个成员.
IEnumerable<CompleteOrderDetails> orders;
JoinDetails(doc, ns, xmlFragment1, out orders);
string connectionstring = null;
SqlConnection conn;
connectionstring = "Data Source = DANNY; Initial Catalog = Alliance; Integrated Security = SSPI";
using (conn = new SqlConnection(connectionstring))
{
string customerInsert = "INSERT INTO AmazonCustomer (AddressLine1, AddressLine2, AddressLine3, City, StateOrRegion, AmazonOrderId, PostalCode, Title, ItemPrice, ShippingPrice, Quantity) " +
"VALUES (@AddressLine1, @AddressLine2, @AddressLine3, @City, @StateOrRegion, @AmazonOrderId, @PostalCode, @Title, @ItemPrice, @ShippingPrice, @Quantity)";
using (SqlCommand query = new SqlCommand(customerInsert))
{
query.Connection = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用类Object将新记录添加到SQL数据库表.我创建了一个Products列表,然后用sql语句遍历所有这些产品.
我的代码是这样的:
private void backupButton_Click(object sender, RoutedEventArgs e)
{
ReadAllProductsList dbproducts = new ReadAllProductsList();
DB_Product = dbproducts.GetAllProducts();
List<Product> SQLProductList = new List<Product>();
SQLProductList = DB_Product.Where(Product => Product.UserId == currentUser).ToList();
for(int i = 0; i < SQLProductList.Count; i++)
{
InsertSQLProduct(new Product(SQLProductList[i].UserId,
SQLProductList[i].Name));
}
}
public void InsertSQLProduct(Product objProduct)
{
using (var connection = new SqlConnection("Server=localhost\\SQLEXPRESS;Integrated Security=SSPI;database=MyLocalDB"))
{
connection.Open();
using (SqlCommand command = new SqlCommand("INSERT INTO Product (UserId, Name) '" +
"'VALUES (null, '" + objProduct.Name + "');", connection))
{
command.ExecuteNonQuery();
} …Run Code Online (Sandbox Code Playgroud) 我想对表的存在进行测试,以执行类似以下操作:
如果(表存在),那么我的操作将插入到表中
否则我会做:
select * into Table from MySource
Run Code Online (Sandbox Code Playgroud)
我们如何使用SQL执行此操作?
当我只检查表的存在时:
IF EXISTS (SELECT * FROM Table)
print 'OK'
Else
Print 'KO'
Run Code Online (Sandbox Code Playgroud)
该表不存在时,我不知道。
我想在一个查询中插入多个行,如下所示:
insert into EducationInfo (student_id, school_id)
values (
(select id
from STUDENT
where iin in (select distinct iinplt
from TEST_STUDENT
where id_university = 9)), 23421
)
Run Code Online (Sandbox Code Playgroud)
当然是不可能的。我知道我可以这样做:
values(1,23421),
values(2,23421)...
Run Code Online (Sandbox Code Playgroud)
但是如您所见,我不知道student_id列中的ID,并且ID过多。有什么可行的方法吗?
sql-insert ×10
sql ×6
mysql ×5
sql-server ×3
c# ×2
database ×2
php ×2
sql-update ×2
csv ×1
executemany ×1
exists ×1
phpmyadmin ×1
python-3.x ×1
select ×1
sqlite ×1
triggers ×1