猫史档案馆


谁说sql写这么长容易报错 我给大家看看大师sql 全部手写

用户:黑色中王牌黑色中王牌查看:1 回复:5 评论:1 创建时间:2022-07-18T09:20:27


async function saveData(entity) {
    if (entity.player.userKey) {
        await db.sql`
            INSERT INTO saveWuZi (
                wood,
                stone,
                metal,
                hide,
                chitin,
                flint,
                metalingot,
                thatch,
                fiber,
                crystal,
                sparkpowder,
                gunpowder,
                obsidian,
                cementingpaste,
                oil,
                silicapearls,
                polymer,
                keratin,
                furs,
                userKey
            )
            VALUES (
                ${entity.player.wood},
                ${entity.player.stone},
                ${entity.player.metal},
                ${entity.player.hide},
                ${entity.player.chitin},
                ${entity.player.flint},
                ${entity.player.metalingot},
                ${entity.player.thatch},
                ${entity.player.fiber},
                ${entity.player.crystal},
                ${entity.player.sparkpowder},
                ${entity.player.gunpowder},
                ${entity.player.obsidian},
                ${entity.player.cementingpaste},
                ${entity.player.oil},
                ${entity.player.silicapearls},
                ${entity.player.polymer},
                ${entity.player.keratin},
                ${entity.player.furs},
                ${entity.player.userKey}
            )
            ON CONFLICT(userKey)
            DO UPDATE SET
            wood = excluded.wood,
            stone = excluded.stone,
            metal = excluded.metal,
            hide = excluded.hide,
            chitin = excluded.chitin,
            flint = excluded.flint,
            metalingot = excluded.metalingot,
            thatch = excluded.thatch,
            fiber = excluded.fiber,
            crystal = excluded.crystal,
            sparkpowder = excluded.sparkpowder,
            gunpowder = excluded.gunpowder,
            obsidian = excluded.obsidian,
            cementingpaste = excluded.cementingpaste,
            oil = excluded.oil,
            silicapearls = excluded.silicapearls,
            polymer = excluded.polymer,
            keratin = excluded.keratin,
            furs = excluded.furs,
            userKey = excluded.userKey
        `
    }
}
world.onPlayerLeave(async ({entity})=>{await saveData(entity);});
async function loadData(entity) {
    const data = (
        await (
            db.sql`
                SELECT * FROM saveWuZi WHERE userKey = ${entity.player.userKey} limit 1
            `
        )
    )[0];
    if (data) {
        entity.player.wood = data.wood;
        entity.player.stone = data.stone;
        entity.player.metal = data.metal;
        entity.player.hide = data.hide;
        entity.player.chitin = data.chitin;
        entity.player.flint = data.flint;
        entity.player.metalingot = data.metalingot;
        entity.player.thatch = data.thatch;
        entity.player.fiber = data.fiber;
        entity.player.crystal = data.crystal;
        entity.player.sparkpowder = data.sparkpowder;
        entity.player.gunpowder = data.gunpowder;
        entity.player.obsidian = data.obsidian;
        entity.player.cementingpaste = data.cementingpaste;
        entity.player.oil = data.oil;
        entity.player.silicapearls = data.silicapearls;
        entity.player.polymer = data.polymer;
        entity.player.keratin = data.keratin;
        entity.player.furs = data.furs;
        entity.player.directMessage('系统提示:已读取数据');
    } else {
        entity.player.directMessage('系统提示:你目前还没有数据,已帮你创建');
    }  

 

全部手写还有一个简单的SQL

async function savePlayer(entity) {
    if (entity.player.userKey) {
        await db.sql`
            INSERT INTO player (
                userName,
                hp,
                exp,
                rank,
                knapsack,
                userKey
            )
            VALUES(
                ${entity.player.name},
                ${entity.hp},
                ${entity.exp},
                ${entity.rank},
                ${JSON.stringify(entity.knapsack)},
                ${entity.player.userKey}
            )
            ON CONFLICT(userKey)
            DO UPDATE SET

            userName=excluded.userName,
            hp=excluded.hp,
            exp=excluded.exp,
            rank=excluded.rank,
            knapsack=excluded.knapsack
        `
    }
}
async function showPlayers() {
    console.clear()
    const playerList = await db.sql`SELECT * FROM player`
    for (const p of playerList) {
        console.log(JSON.stringify(p))
    }
}

async function createTable() {
    await db.sql`
        CREATE TABLE IF NOT EXISTS player (
            hp INTEGER DEFAULT 100,
            exp INTEGER DEFAULT 0,
            rank INTEGER DEFAULT 0,
            knapsack TEXT DEFAULT '',
            userKey TEXT PRIMARY KEY UNIQUE DEFAULT ''
        )
    `
    showPlayers()
}
async function loadPlayer(entity) {
    const data = (await (db.sql`SELECT * FROM player WHERE userKey=${entity.player.userKey} limit 1`))[0]
    if (data) {
        entity.hp = data.hp
        entity.exp = data.exp
        entity.rank = data.rank
        entity.knapsack = JSON.parse(data.knapsack)
    }
}

async function showPlayers() {
    console.clear()
    const playerList = await db.sql`SELECT * FROM player`
    for (const p of playerList) {
        console.log(JSON.stringify(p))
    }
}

async function createTable() {
    await db.sql`CREATE TABLE IF NOT EXISTS player (
        userName TEXT DEFAULT '',
        hp INTEGER DEFAULT 100,
        exp INTEGER DEFAULT 0,
        rank INTEGER DEFAULT 0,
        knapsack TEXT DEFAULT '',
        userKey TEXT PRIMARY KEY UNIQUE DEFAULT ''
    )`

    showPlayers()
}

createTable()

 

也是手写

这两个SQL不一样但全是手写无报错

现在我觉得sql太简单了


回复

上一页1 页 / 共 1下一页
找师傅_十岁以后的我找师傅_十岁以后的我

sofa

点赞0


评论


全能代码师全能代码师

其实我有一个集成的办法...

点赞0


评论


萌新大佬萌新大佬

stringify不香么

点赞0


评论


AokenAoken

ddd

点赞0


评论


yee剑走天下yee剑走天下

谁说sql写长容易报错了()

点赞0


评论