繁体   English   中英

如何使用MySQL工作台创建MySQL脚本?

[英]How to create MySQL script using MySQL workbench?

我遵循了教程,但似乎他在视频中使用的查询无法在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

正确的语法应该是什么?

在研究了在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM