我试图从xml中提取值.我在xml具有属性时遇到问题.喜欢以下存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `excel`.`insert_items` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_items`()
BEGIN
SET @xml = '<items><item>
<value columntype="0">Single Line Text_01</value>
<value columntype="1">Single Line Text_12341</value>
<value columntype="2">Single Line Text_21</value>
<value columntype="3">Single Line Text_31</value>
<value columntype="4">Single Line Text_41</value>
</item>
</items>';
SELECT @columntype, ExtractValue(@xml, 'items/item/value[items/item/value/@columntype=0]');
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud) 我在计算机上有一个MySQL数据库,在不同的服务器上有相同的MySQL数据库.我需要他们在结构上的长期完全相同,包含的数据和我来的地步,我能做到这一点的唯一途径是通过截断一个表,然后插入到它的其他的所有行(完全相同)表.
我想通过MySQL查询而不是通过备份然后导入它来实现这一点,而不是通过数据库迁移等,而是通过查询,因为我计划在VB项目中使用此查询并在每次更改时使用它这两个表中的任何一个.
我知道如果同一服务器上的表的查询结果如下:
INSERT INTO db.table1 SELECT * FROM db.table2
Run Code Online (Sandbox Code Playgroud)
但我不知道如何编写该SELECT子句以及如何告诉它.table2在另一台服务器上.
我认为它应该是这样的
INSERT INTO db.table1 SELECT * FROM (ServerName/IP).db.table2
Run Code Online (Sandbox Code Playgroud)
但不能完全弄明白自己,任何想法?
我有一个后插入触发器.调用存储过程.当我运行直接查询时,它运行良好.但是当我通过节点js app插入数据时.它甚至不在主表中插入数据.触发器和存储过程中没有任何错误,因为它适用于表的直接插入查询.
dbObject.create(data, function(err, response){
if (err) {
//console.log("err", err);
res.status(500).jsonp(response)
}
console.log("response", response);
dbObject.find({SnsId: SnsId}, '*' , {}, 0, 0, {}, function(err, resp){
if (err) {
//console.log("err", err);
res.status(500).jsonp(err)
}
console.log("response", resp);
res.jsonp(resp);
});
});
Run Code Online (Sandbox Code Playgroud)
触发代码 -
DELIMITER $$
CREATE TRIGGER `copytoSensorMapTrigger` AFTER INSERT ON test4.`SENSORS`
FOR EACH ROW
BEGIN
CALL copyToSensorMap(NEW.`SnsId`,NEW.`SnsState`);
END;
Run Code Online (Sandbox Code Playgroud)
存储过程代码 -
DELIMITER $$
CREATE PROCEDURE copyToSensorMap(IN snsid bigint(20),IN sns_state varchar(128))
BEGIN
DECLARE color varchar(128);
INSERT INTO test3.`SENSOR_MAP` (`SENSOR_ID`, `SENSOR_NAME`, `USER_ID`, `HOST_ID`, `SENSOR_STATE`)
SELECT `SnsId`,
`SnsName`,`SnsOwner`,`HostId`,`SnsState` …Run Code Online (Sandbox Code Playgroud) 我试图使用laravel ModelFactory创建一个使用一些虚拟数据填充表格的播种表.我一直收到这个错误,而且我没有修复它的想法.
'种族'模式
<?php
namespace App\Game;
use Illuminate\Database\Eloquent\Model;
class Race extends Model
{
//
public $timestamps = false;
protected $fillable = ['name','description','icon'];
}
Run Code Online (Sandbox Code Playgroud)
文件2模型工厂文件
$factory->define(App\Game\Race::class, function (Faker\Generator $faker) {
return [
'name' => $faker->name,
'description' => $faker->text,
'icon' => $faker->url,
];
});
Run Code Online (Sandbox Code Playgroud)
文件3播种机文件
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class RacesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
factory(App\Game\Race::class, 10)->create()->each(function($u) {
$u->posts()->save(factory(App\Game\Race::class)->make());
});
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误调用未定义的方法Illuminate\Database\Query\Builder :: posts()
当我打电话给'php …
我有这个脚本,我习惯于为动态结果做一个简单的投影
SELECT
M.nom_utilisateur,
SUM(M.montant_bulletin ) as Montant_Total_BS,
SUM(M.montant_payer ) as Montant_Total_payer,
COUNT(M.ref_bs ) as nbr_bs_total,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Remboursé")) as nbr_bs_total_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Non remboursé")) as nbr_bs_non_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "En cours")) as nbr_bs_en_cours,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND …Run Code Online (Sandbox Code Playgroud) 在SQL Server中有类似的东西
IDENTITY_INSERT设置为OFF,之后我们可以设置为ON
我想知道的是,在mysql中类似的东西我需要临时设置并设置为ON,例如
create procedure ()
begin
IDENTITY_INSERT is set to OFF
Some insert statement
Some insert statement
IDENTITY_INSERT is set to ON
end
Run Code Online (Sandbox Code Playgroud) 我在服务器端使用PHP和MySql(InnoDB)的小型POS系统。完成“销售”后,将执行以下查询以更新库存数量:
"UPDATE products SET qty=qty-:qty, ustatus=1 WHERE pid=:pid";
Run Code Online (Sandbox Code Playgroud)
此语句是否为“并发更新安全”,这意味着我需要任何事务或锁定表。
我只想确保,在同一时间执行的多个查询不会弄乱我的库存。
我正在尝试创建一个关注者/关注系统,当我尝试将新用户附加到以下列表时,出现错误Cannot read property 'push' of undefined。这最终会创建 2 个单独的表,一张用于关注其他用户的用户,一张用于被其他用户关注的用户。不知道为什么它没有占据这个领域?任何帮助表示赞赏。
import { Length } from "class-validator";
import {
Column,
CreateDateColumn,
Entity,
JoinTable,
ManyToMany,
OneToMany,
PrimaryColumn,
RelationCount,
Unique,
UpdateDateColumn
} from "typeorm";
export class User {
@PrimaryColumn()
public user_id: string;
@Column()
public first_name: string;
@Column()
public last_name: string;
@Column()
public email: string;
@Column()
public phone_number: string;
@Column()
public username: string;
@Column()
@CreateDateColumn()
public created_on: Date;
@Column()
@UpdateDateColumn()
public updated_at: Date;
@ManyToMany((type) => User, (user) => user.following)
@JoinTable()
public followers: User[];
@ManyToMany((type) …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个具有类似于下面的表结构的数据库,其中 2 个表是表的子类型。
动物有一个主键,狗和猫有一个引用动物的animal_id的外键。
animal(animal_id, bornAt)
dog(animal_id, barkSound)
cat(animal_id, meowSound)
Run Code Online (Sandbox Code Playgroud)
值得注意的是,dog和cat是不相交的,因此它们不可能在animal中引用相同的animal_id。
有没有办法在给定animal_id的情况下使用SQL代码来确定动物的类型?例如,如果有一只动物_id为4的狗(不知道动物_id 4是狗这一事实),我想通过动物和狗表中的连接检索数据。
我正在使用(最新的)流明,这可能是我的错误的罪魁祸首。
当我使用 updateOrCreate() 时:
User::updateOrCreate(
['username' => $user->username],
[
'email' => $user->email,
'password' => $user->password,
'foreign_id' => $user->foreign_id,
'client_id' => $user->client_id,
'status' => $user->active,
'user_level' => (integer) $user->user_level
]
);
Run Code Online (Sandbox Code Playgroud)
在我的其中一个模型上,我收到 mysql 错误:
"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'user@name.com' for key 'users_username_unique' (SQL: insert into `users` (`username`,
Run Code Online (Sandbox Code Playgroud)
因为它尝试为我的唯一列之一(用户名)插入重复值。
因此,函数本身存在,我没有收到任何错误,并且它适用于第一次插入,但是一旦它达到检查数据库条目是否存在并且只需要更新它的功能,它仍然想要创建新条目,但具有重复的值。
Laravel 本身在其 Eloquent 中有 updateOrCreate():https ://laravel.com/docs/8.x/eloquent#upserts 。Lumen 中的 Eloquent 是否会以某种方式削弱此功能?
在查看 Laravel 或 Lumen 的代码时,我找不到这个函数的实现,最接近的是 updateOrFail()...
mysql ×7
laravel ×2
php ×2
arrays ×1
copy ×1
javascript ×1
laravel-5.3 ×1
lumen ×1
node.js ×1
sql ×1
triggers ×1
typeorm ×1
typescript ×1
xml ×1