Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tạo một thủ tục được lưu trữ trong MySQL với Knex raw

Điều này sẽ hữu ích. Ở đây tôi đã viết một mô-đun được mong đợi bởi quỳ-migrate. Sẽ không có gì khó khăn khi thích ứng với nhu cầu của bạn.

const mysql = require('mysql2');

const {
  database: {
    connection: {
      host, user, password, database, port
    }
  }
} = require('./settings.js');

exports.up = async () => {
  const script = `
    CREATE DEFINER=\`<YOUR_DB_USER>\`@\`%\` PROCEDURE \`fill_date_dimension\`(IN startdate DATE,IN stopdate DATE)
    BEGIN
        DECLARE currentdate DATE;
        SET currentdate = startdate;
        WHILE currentdate < stopdate DO
        INSERT INTO time_dimension VALUES (
                        YEAR(currentdate)*10000+MONTH(currentdate)*100 + DAY(currentdate),
                        currentdate,
                        YEAR(currentdate),
                        MONTH(currentdate),
                        DAY(currentdate),
                        QUARTER(currentdate),
                        WEEKOFYEAR(currentdate),
                        DATE_FORMAT(currentdate,'%W'),
                        DATE_FORMAT(currentdate,'%M'),
                        'f',
                        CASE DAYOFWEEK(currentdate) WHEN 1 THEN 't' WHEN 7 then 't' ELSE 'f' END,
                        NULL);
        SET currentdate = ADDDATE(currentdate,INTERVAL 1 DAY);
        END WHILE;
    END`

  const connection = mysql.createConnection({
    host,
    user,
    database,
    password,
    port
  });

  return new Promise(function (resolve, reject) {
    connection.query(
      script,
      function (err) {
        if (err) {
          return reject(err);
        }

        return resolve();
      }
    );
  });
};

exports.down = async knex => knex.raw('DROP PROCEDURE IF EXISTS fill_date_dimension');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình Yii với khóa chính tổng hợp

  2. PHP MYSQL tìm nạp một TEXT với các dòng mới

  3. tạo Bảng và cột động bằng cách sử dụng trình kết nối python mysql

  4. Tham gia các bảng trên nhiều máy chủ

  5. Việc sử dụng mysql của addlash ()