mysql - 如何使用 MySQL Workbench 创建 MySQL 脚本?

标签 mysql mysql-workbench

我关注了this教程,但他在视频中使用的查询似乎无法在 MySQL 中使用。

CREATE PROCEDURE spInsertIntoStudentCourses
@StudentName varchar(50), 
@CourseName varchar(50)

AS
BEGIN
  DECLARE  @StudentId int;
  DECLARE  @CourseId int;

  SELECT @StudentId = id from Students where StudentName = @StudentName;

  if(@StudentId is null);
  Begin;
    INSERT INTO Student VALUES (@StudentName);
    SELECT @StudentId = SCOPE_IDENTITY();
  END;

  SELECT @CourseId = id from Courses where CourseName = @CourseName;

  if(@CourseName is null)
  BEGIN;
    INSERT INTO Courses VALUES (@CourseName);
    SELECT @CourseId = SCOPE_IDENTITY();
  END;

  INSERT INTO StudentCourses VALUES (@StudentID, @CourseID);
END

正确的语法应该是什么?

最佳答案

经过一年的研究basics在 MySQL 中创建存储过程时,我像这样创建了上述问题的我自己的 MySQL 版本。

CREATE PROCEDURE `InsertStudentCourse`(
    _studentName VARCHAR(50),
    _courseName VARCHAR(50)
)
BEGIN
    DECLARE  _studentId INT;
    DECLARE  _courseId INT;

    SELECT _studentId = studentId FROM students WHERE studentName = _studentName;

    IF (_studentId IS NULL) THEN
        BEGIN
            INSERT INTO students VALUES (NULL, _studentName);
            SELECT _studentId = LAST_INSERT_ID();
        END;
    END IF;

    SELECT _courseId = courseId FROM courses WHERE CourseName = _courseName;

    IF (_courseId IS NULL) THEN
        BEGIN
            INSERT INTO courses VALUES (NULL, _courseName);
            SELECT _courseId = LAST_INSERT_ID();
        END;
    END IF;

    INSERT INTO student_courses VALUES (NULL, _studentName, _courseName);
END

关于mysql - 如何使用 MySQL Workbench 创建 MySQL 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44917076/

相关文章:

mysql - 使用 MySQL Workbench 连接到实时数据库

php - 根据进出时间计算迟到/早到时间

mysql - 在 CakePHP 中使用 OR 时返回不匹配的记录

mysql - 在工作台中迁移期间无法连接到 MySQL。无法连接到 MySQL (10061)(代码 2003)

mysql - 如何从服务器获取当前日期

php - 使用 PHP 和 mysqli 从多个 MySQL 表获取数据

mysql - 在 Visual Studio 2013 的 ListView 中从 MySQL 中删除一行

mysql - SQL根据初始表的ID连接另一个表

mysql - 在单个 SQL 语句中插入多个非 "pre-known"的值

MySQL Workbench,如何修复 "SELECT is not valid at this position for this server version"错误